Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prometheus 如何使用普罗米修斯来警告特定的错误消息?_Prometheus_Prometheus Alertmanager - Fatal编程技术网

Prometheus 如何使用普罗米修斯来警告特定的错误消息?

Prometheus 如何使用普罗米修斯来警告特定的错误消息?,prometheus,prometheus-alertmanager,Prometheus,Prometheus Alertmanager,我正在尝试收集应用程序的运行状态,如果发生错误,则使用alertmanager发出警报 我读过关于公制类型的文档,似乎gauge vec是唯一合适的类型。目前,我的度量定义如下(正在进行中,但您可以理解): 发生错误时将报告1。并且alertmanager配置为在validate\u errored变为1时发出警报 但现在我需要知道警报消息中的确切错误,因此我决定添加一个新标签: errored = prometheus.NewGaugeVec( prometheus.GaugeOpts

我正在尝试收集应用程序的运行状态,如果发生错误,则使用alertmanager发出警报

我读过关于公制类型的文档,似乎gauge vec是唯一合适的类型。目前,我的度量定义如下(正在进行中,但您可以理解):

发生错误时将报告1。并且alertmanager配置为在
validate\u errored
变为1时发出警报

但现在我需要知道警报消息中的确切错误,因此我决定添加一个新标签:

errored = prometheus.NewGaugeVec(
    prometheus.GaugeOpts{
        Name: "validate_errored"
    },
    []string{"module", "error"},
)
错误将被成功地警告,但这种方式的问题是,普罗米修斯在查询时似乎会聚集在每个唯一的标签上,每个不同的错误消息都会在图表上变成一条线

我还读到,如果我使用标签来保存变量数据,这可能是一个问题,我现在已经忘记了数据的来源


那么,警告特定错误的惯用方法是什么呢?

阅读您的问题,我假设一旦发生错误,在应用程序重新启动之前,度量值将为“1”。或者,一旦用户清除条件,状态可能会重置

如果这是一个稍后将被清除的状态,则将使用一个仪表。如果您想报告/提醒发生了多少错误(哪种类型),计数器可能是最合适的

普罗米修斯是记录和提醒度量(和状态)信息的好工具

如果您希望在事件(发生错误的事实)时发出警报,那么类似日志管理的解决方案可能更合适。日志还可以提供更深入的信息

只要没有“指标爆炸”,就可以将错误添加为标签。如果错误类型的数量相当少,可以将其作为标签。像用户ID这样的东西(具有无限量的值)不应该用作标签,因为它会导致指标爆炸


在何时发送警报时添加一个更加具体的标签通常是一件好事。添加标签以在警报消息中显示它在技术上是可行的,但不是添加标签的最佳理由,因为它会为每个标签值(IMHO)创建额外的时间序列

谢谢你的意见。你的假设是正确的,度量标准只是0或1。似乎使用标签是报告错误消息的唯一可行方法。我觉得它不干净。感谢您指导我使用日志管理解决方案,我将尝试kibana或类似的解决方案。
errored = prometheus.NewGaugeVec(
    prometheus.GaugeOpts{
        Name: "validate_errored"
    },
    []string{"module", "error"},
)