Я пытаюсь собрать статус работающего приложения, если произошла ошибка, тогда используйте alertmanager для оповещения.
Я читаю документы о типах метрик, кажется, калибровочный vec - единственный подходящий тип. В настоящее время мое определение метрики похоже (это на Go, но вы можете понять):
errored = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "validate_errored"
},
[]string{"module"},
)
1 будет сообщено, когда произошла ошибка. А alertmanager настроен на оповещение, когда validate_errored
становится 1.
Но теперь мне нужно знать точную ошибку в предупреждающем сообщении, поэтому я решил добавить новую метку:
errored = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "validate_errored"
},
[]string{"module", "error"},
)
Об ошибках будут оповещаться успешно, но проблема с этим способом в том, что Прометей, кажется, агрегирует по каждой уникальной метке при запросе, каждое отдельное сообщение об ошибке становится линией на диаграмме.
Я также читал, что это может быть проблемой, если я использую метки для хранения переменных данных, которые я сейчас забыл об источнике.
Так, каков идиоматический способ предупредить определенную ошибку?