首页 > 解决方案 > Grafana:如何根据两个事件创建警报?

问题描述

如果每个相同网关last_hour_mins_average_status> 3.4 和> 75,我需要创建警报。last_five_mins_requests_to_gateway_gauge_count有以下输入:

# HELP last_five_mins_requests_to_gateway_gauge_count labels: gatewayId
# TYPE last_five_mins_requests_to_gateway_gauge_count gauge
last_five_mins_requests_to_gateway_gauge_count{gatewayId="34"} 1
last_five_mins_requests_to_gateway_gauge_count{gatewayId="38"} 32
last_five_mins_requests_to_gateway_gauge_count{gatewayId="44"} 34
last_five_mins_requests_to_gateway_gauge_count{gatewayId="51"} 23
last_five_mins_requests_to_gateway_gauge_count{gatewayId="68"} 14
last_five_mins_requests_to_gateway_gauge_count{gatewayId="75"} 1
last_five_mins_requests_to_gateway_gauge_count{gatewayId="76"} 71
last_five_mins_requests_to_gateway_gauge_count{gatewayId="79"} 1

# HELP last_hour_mins_average_status Average value by message status by last 60 minutes
# TYPE last_hour_mins_average_status gauge
last_hour_mins_average_status{gatewayId="34"} 1.6923
last_hour_mins_average_status{gatewayId="38"} 1.5004
last_hour_mins_average_status{gatewayId="44"} 1.1569
last_hour_mins_average_status{gatewayId="51"} 1.7835
last_hour_mins_average_status{gatewayId="62"} 8.0000
last_hour_mins_average_status{gatewayId="68"} 1.3075
last_hour_mins_average_status{gatewayId="75"} 1.2727
last_hour_mins_average_status{gatewayId="76"} 1.3703
last_hour_mins_average_status{gatewayId="78"} 1.0000
last_hour_mins_average_status{gatewayId="79"} 2.1622

我创建了查询 A:

avg_over_time(lox24_sms_last_five_mins_requests_to_gateway_gauge_count[1m])

和查询 B:

avg_over_time(lox24_sms_last_hour_mins_average_status[1m])

和警报条件(UI形式):

when avg() of query(A, 5m, now) is above 75
and avg() of query(B, 5m, now) is above 3.4

当任何 gatewayId 的消息数 > 75 并且任何 gatewayId 的平均状态 > 3.4 时,都会发生警报。

但只有当这两种情况都发生在同一个 gatewayId 时,我才需要提醒。

标签: alertgrafanaprometheus

解决方案


这是应该执行此操作的 Prometheus 查询(尚未测试,但应该可以):

last_five_mins_requests_to_gateway_gauge_count > 75
  and
last_hour_mins_average_status > 3.4

推荐阅读