如何使用普罗米修斯查询从指标中抓取标签值并设置警报

How can I scrape label value using prometheus query from metrics and set alerts

如何从以下指标中抓取标签 task_attempt_num 值并在其大于 0[=11 时配置警报=]

flink_taskmanager_numrecordout{instance="eu99",task_attempt_num="2",task_id=2}
flink_taskmanager_numrecordout{instance="eu99",task_attempt_num="0",task_id=2}
flink_taskmanager_numrecordout{instance="eu99",task_attempt_num="1",task_id=1}
flink_taskmanager_numrecordout{instance="eu99",task_attempt_num="0",task_id=3}```

如果我理解正确的话,您希望在某项任务的尝试次数超过 0 时收到提醒。

您不能在标签上应用算术运算符,但可以应用 selectors。您可以计算不 0:

的尝试次数
expr: count(flink_taskmanager_numrecordout{task_attempt_num!="0"})  without(task_attempt_num)

在 Prometheus 中使用 absent 方法我们可以检查我们正在搜索的指标是否存在,如果不存在我们将得到 1 作为输出,在其他情况下为 Null。

虽然 Prometheus 不提供比较数字标签值的功能,但可以使用 label_value function in MetricsQL 来完成。以下查询 returns non-empty 在遇到 flink_taskmanager_numrecordout 标签值大于 0 的 flink_taskmanager_numrecordout 时间序列时产生结果(例如它发出警报):

label_value(flink_taskmanager_numrecordout, "task_attempt_num") > 0