Grafana查询Prometheus kube_job_status_completion_time仅获最新值问题
问题:Grafana查询Prometheus的kube_job_status_completion_time返回多值,如何获取单个最新值?
我用PromQL语句last_over_time(kube_job_status_completion_time{job_name=~".*ingestion-job.*"}[14s])查询kube_job_status_completion_time指标的最新值:
- 在Prometheus中直接执行范围查询能得到单个值
- 但在Grafana范围模式下返回多个值
试过调整最小步长、切换查询模式都没用,会不会是同时运行metrics-server和kube-prometheus-node-exporter导致的问题?
我清楚这个指标的抓取逻辑:Job完成后指标被创建并抓取,因为设置了ttlSecondsAfterFinished: 600,所以会以scrape_interval: 30s的间隔持续抓取10分钟,到期后停止。但还是不知道怎么在Grafana里只获取单个值。
已找到的解决方案
将时间范围调整为更大的值,比如要查询最近7天内Job的运行时长,可使用以下PromQL语句:
avg by (job_name) (last_over_time(kube_job_status_completion_time{job_name=~".*ingestion-job.*"}[7d]) - last_over_time(kube_job_status_start_time{job_name=~".*ingestion-job.*"}[7d]))
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

