首页 > 解决方案 > Grafana/Prometheus - 用另一个过滤一个度量

问题描述

我已经为我的一个项目设置了https://github.com/mvisonneau/gitlab-ci-pipelines-exporter,现在我无法使用 grafana 正确可视化指标。

根据文档,导出以下指标:https ://github.com/mvisonneau/gitlab-ci-pipelines-exporter/blob/main/docs/metrics.md

现在我想要例如所有成功管道(针对特定分支)的平均运行时间。为此,我必须将度量标准“gitlab_ci_pipeline_duration_seconds”与“gitlab_ci_pipeline_status”结合起来——但我不太明白如何。

avg(gitlab_ci_pipeline_duration_seconds{project=~"$PROJECT", ref=~"$BRANCH", kind="branch"})

为我生成平均值 - 但我如何获得约束

gitlab_ci_pipeline_status{project=~"$PROJECT", ref=~"$BRANCH", kind="branch", status="success"})

映射到?是我直接用 PromQl 做的事情,还是我应该更好地利用 grafana 功能/可能性?

我发现这个查询是可能的解决方案:

(max(gitlab_ci_pipeline_duration_seconds{project=~"$PROJECT", ref=~"$BRANCH", kind="branch"}) by (project,ref,kind) > 0)
+ on(project,ref,kind) group_left(status) (0*gitlab_ci_pipeline_status{status="success"})

但这是最好的方法吗?

标签: prometheusgrafana

解决方案


推荐阅读