问题描述
我使用“ pip install'apache-airflow [statsd]”安装了airflow [statsd],然后安装了statsd_exporter。现在我可以看到Prometheus的气流指标。但是,与气流相关的所有指标都有dag_id和task_id作为一部分指标名称。
例如,对于任务ID为“ task1”的dag ID为“ dag1”,完成任务所需时间的度量标准为:airflow_dag_dag1_task1_duration。对于任务ID为“ task2”的dag ID为“ dag2”的指标为:airflow_dag_dag2_task2_duration。
我感兴趣的事情是这样的:如果某个dag失败,则触发警报;如果dag完成超过XXX秒,则触发警报。换句话说,我不想为每个单独的任务或任务创建规则和警报。我想提醒一般情况。
如何在普罗米修斯中为通用案例创建规则/警报?
解决方法
您应该可以使用以下内容,并以此为基础发出警报:
{__name__=~"airflow_dag.+_duration"}
但是请注意,如果仅使用{__name__=~".+"}
,这将是一个昂贵的查询,并且可能会破坏需要重新启动Prometheus服务的实例。
已更新以包括示例警报:
- alert: Saf_Test
expr: ({__name__=~"windows_cpu.+_total"} > 5.8281319e+07)
for: 5m
labels:
severity: warning
annotations:
description: 'Alert text here'
summary: 'Summary here'