通过Prometheus警报管理器使用多个指标发送警报

时间:2018-08-22 18:07:54

标签: monitoring prometheus prometheus-alertmanager

我正在为某个商业案例评估Prometheus。我一直在关注文档,但是找不到能够描述我的要求的示例。

下面是我的业务案例。

我将在一个PULL周期内使用以下度量将数据(PULL)泵送到Prometheus。当然,在一个PULL循环中,我也可以抽出另一组完全相同的指标,但是资产ID会有所不同。

test_value_one{asset_id="123"} 0.215
test_value_two{asset_id="123"} 0.815
test_value_six{asset_id="123"} 0.715

我的问题是

我可以使用多个指标(相同的资产ID)构建一条规则。我认为可以在表达式(expr)中使用多个指标。但是我的要求如下。

name: iot_rules
  rules:
  - alert: threshhold_alert
    expr: test_value >= 4
    #for: 1m
    labels:
      severity: critical     
      Additional text : The other metric values are 0.815 and 0.715
    annotations:      
      summary: 'Error detected on {{$labels.assset_id}}'

如果您查看警报规则中的其他文本,则值 0.815 0.715 需要来自其他两个指标,即 test_value_two test_value_six 。这是我可以实现的,因为我的目标是在我打算发送的单个警报中提供其他指标的全面视图。

2 个答案:

答案 0 :(得分:0)

您可以尝试

expr: test_value_one - test_value_two >= 4  or test_value_two - test_value_six >= 4

或类似

答案 1 :(得分:0)

alert-manager.yml上的以下配置有助于基于资产ID汇总数据。注意下面的“ group_by”标签。我在构建所需文本的地方公开了用于promwebhook的RESTAPI。

global:

route:
  group_by: ['asset_id']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 2m
  receiver: node