首页 > 解决方案 > 每次出现错误时使用 prometheus 创建警报

问题描述

我是普罗米修斯和警报系统的新手。我开发了一个微服务并添加了指标代码,以便在出现错误时获取增量的总数。现在我正在尝试创建一个警报,以便每当错误增加时,它应该标记出来并发送邮件。但我无法为这种情况形成正确的查询。我使用了诸如 error_total > 0 之类的东西来发送警报,但它每次都会起作用,因为计数将 > 0,除非我们手动重置它。

标签: prometheusprometheus-alertmanagerprometheus-blackbox-exporter

解决方案


您正在寻找的是增加功能。只要在前 15 分钟内出现错误,以下表达式就会触发 en error:

expr: increase(my_error_metric[15m]) > 0
annotations:
  summary: "Hey! There were {{ $value }} errors in the last 15 minutes"

错误在微服务中很常见,并且对每个错误发出警报通常是难以管理的。更常见的策略是仅在错误率超过给定阈值(例如 5%)时发出警报:

expr: irate(my_error_metric[2m]) / irate(number_of_call[2m]) * 100 > 5

增加警报也可能意味着您可能会错过一些错误,因为警报是针对错误触发的,但在调查期间会发生另一个错误。不会有第二个警报,它将包含在第一个警报中。


推荐阅读