i used to have labels that contained a "-". But once a alert fired and was send to Alertmanager I got the following Alertmanager error:
level=debug ts=2018-02-15T12:33:37.664709239Z caller=api.go:791 msg="Decoding request failed" err="\"service-environment\" is not a valid label name"
level=error ts=2018-02-15T12:33:37.664824413Z caller=api.go:780 msg="API error" err="bad_data: \"service-environment\" is not a valid label name"
level=debug ts=2018-02-15T12:33:37.678279848Z caller=api.go:791 msg="Decoding request failed" err="\"service-nodeexporter\" is not a valid label name"
level=error ts=2018-02-15T12:33:37.678361568Z caller=api.go:780 msg="API error" err="bad_data: \"service-nodeexporter\" is not a valid label name"
I replaced the "-" with a "_" now. Looks like a bug to me. Because prometheus itself had no problem with these labels.