如何用Prometheus的group by按eonid分组展示两个指标的表格
实现Prometheus指标按eonid分组展示的方法
要将metric_a和metric_b按eonid分组并生成目标格式的表格,可通过添加标识标签+合并时间序列的方式实现,具体操作如下:
核心PromQL语句
使用label_replace函数为每个指标添加专属的metricname标签,再合并两个指标的序列:
label_replace(metric_a, "metricname", "metric_a", "", "") or label_replace(metric_b, "metricname", "metric_b", "", "")
语句说明
label_replace(metric_a, "metricname", "metric_a", "", ""):给metric_a的所有时间序列新增metricname标签,值固定为metric_a,用来区分指标来源or操作符:将metric_a和metric_b的所有时间序列合并为一组结果- 若需要对重复条目(比如
metric_b中两条eonid=234的记录)去重,可搭配聚合函数分组聚合:sum by (eonid, appname, metricname) ( label_replace(metric_a, "metricname", "metric_a", "", "") or label_replace(metric_b, "metricname", "metric_b", "", "") )
生成目标表格
在Prometheus UI中执行上述查询后,切换到Table视图,即可看到按eonid分组的表格,包含eonid、appname(展示时可手动重命名为app-name)、metricname三列,完全匹配你需要的格式。
内容的提问来源于stack exchange,提问作者Rajendar Talatam
相关产品推荐
相关产品推荐

