如何在Grafana中聚合Kubernetes上多实例Spring Boot应用的Micrometer+Prometheus指标
如何在Grafana中聚合Kubernetes上多实例Spring Boot应用的Micrometer+Prometheus指标
嗨,这个需求其实核心靠Prometheus的聚合查询就能搞定,Grafana只是负责把聚合后的结果可视化出来而已,我来一步步给你讲清楚:
首先要注意一个小细节:Micrometer会自动把指标名称里的点号(.)转换成下划线(_),所以你定义的process1.calls.total在Prometheus里实际存储的名称是process1_calls_total,成功和失败的指标同理,分别是process1_calls_successful和process1_calls_failed。
接下来就是写PromQL查询来聚合所有实例的数值,用sum()函数就可以轻松实现:
计算Process1的总调用数:
sum(process1_calls_total)这个查询会把所有实例(不管是instance1还是instance2)的
process1_calls_total数值相加,正好得到你要的25。计算Process1的成功调用数:
sum(process1_calls_successful)对应例子里的10+2=12。
计算Process1的失败调用数:
sum(process1_calls_failed)对应例子里的10+3=13。
在Grafana里配置的话也很简单:
- 新建一个面板,选择你的Prometheus作为数据源
- 在查询编辑器里输入上面对应的PromQL
- 给面板设置合适的标题(比如“Process1 总调用数”),调整可视化样式(比如用Stat面板直接显示数值)
- 重复上面的步骤配置成功和失败调用数的面板就行
如果之后你需要按其他维度聚合(比如按K8s的命名空间、Pod标签等),只需要给sum()加上by()子句就可以,比如:
sum by (namespace) (process1_calls_total)
这样就能按命名空间分别聚合总调用数了。
备注:内容来源于stack exchange,提问作者codependent
相关产品推荐
相关产品推荐

