如何在Prometheus中统计标签数量而非指标值并在Grafana展示
实现方法
核心PromQL查询
要统计group标签的数量,直接用PromQL的count()函数统计时间序列总数即可——因为每个group对应一条独立的时间序列:
count(my_metric)
这条查询会返回每个时间点下my_metric的序列数量,正好匹配你要的3、2这类结果。
Grafana面板配置
- 新建面板,选择你的Prometheus数据源。
- 在查询编辑器里输入上面的PromQL语句。
- 选择合适的可视化方式:
- 要展示单个时间点的数值,用Stat面板,调整显示设置就能直接看到对应数量;
- 要展示数量随时间的变化(比如你例子里3→2的变化),用Graph面板,X轴是时间,Y轴就是统计出的数量,每个时间点会显示对应的数值。
复杂场景适配
如果my_metric还有其他标签,担心统计到重复的group,可以先按group分组再统计总数:
count(count by (group) (my_metric))
这条语句先按group标签分组(每个分组返回1),再统计分组的数量,结果和直接count(my_metric)一致,但能确保只统计不同group的数量,不受其他标签干扰。
内容的提问来源于stack exchange,提问作者stevenxu
相关产品推荐
相关产品推荐

