You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Prometheus监控Airflow DAGs时无法获取指定指标的技术求助

Airflow DAG监控需求解决方案(Prometheus+Grafana v8.3.10)

环境信息

  • Grafana版本:v8.3.10
  • 操作系统:Windows 10
  • 监控方案:通过Prometheus采集Airflow内置指标

待解决需求及实现方法

1. 取一天内多次运行DAG的最后一次运行状态

利用PromQL的last_over_time函数,针对airflow_dag_run_state指标筛选1天内的最新状态数据:

last_over_time(airflow_dag_run_state{state=~"success|failed|running"}[1d]) by (dag_id, state)

在Grafana面板中,可通过标签过滤或转换设置,仅保留每个dag_id对应的最新状态条目(指标值为1的状态即为当前生效状态)。

2. 获取DAG成功/失败的时间戳

借助airflow_dag_run_end_time指标(对应DAG运行结束时间),结合state标签筛选目标状态的时间戳,用last_over_time取1天内的最新记录:

last_over_time(airflow_dag_run_end_time{state=~"success|failed"}[1d]) by (dag_id)

在Grafana面板的显示设置中,将指标的Unit设置为Time > Datetime,即可将时间戳转换为可读的日期时间格式。

3. 统计DAG失败次数及失败后的重跑次数

失败次数统计

通过count_over_time函数统计1天内标记为失败的DAG Run数量:

count_over_time(airflow_dag_run_state{state="failed"}[1d]) by (dag_id)

重跑次数统计

Airflow的airflow_dag_run_try_number指标记录了每个DAG Run的尝试次数(初始尝试为1,每重试一次加1),因此实际重跑次数为try_number - 1。用以下PromQL统计1天内的总重跑次数:

sum_over_time((airflow_dag_run_try_number{state="failed"} - 1)[1d]) by (dag_id)

内容的提问来源于stack exchange,提问作者Akshay15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:52:39