我有很少的弹簧引导微服务与执行器和暴露普罗米修斯的指标。例如:
# HELP process_uptime_seconds The uptime of the Java virtual machine
# TYPE process_uptime_seconds gauge
process_uptime_seconds 3074.971但是没有application标记,所以我无法将它绑定到grafana仪表板中的某个应用程序.
另外,我希望一些微服务的应用实例很少,所以通常也添加一个instance标记是很好的。
有什么方法可以用这些标记自定义标准度量吗?
发布于 2022-11-02 17:24:34
添加标记的最佳方法是使用Prometheus服务发现。这使得应用程序代码中不包含这些标记,并使其不关心其存在的位置。
但是,有时候,如果您绝对需要这些额外的标记(因为服务具有Prometheus服务发现没有出现的额外洞察力),您就不能使用Java简单客户机( Go客户机确实支持这一点)。
我发现这个特性是通过一个名为“公共标记”的千分尺特性提供的,它封装了Prometheus客户端。您可以设置您的客户端,以便通过config()调用获得标记。
registry.config().commonTags("stack", "prod", "region", "us-east-1");发布于 2022-11-03 12:51:30
我通常要做的是对资源文件(例如application.yml)使用Maven过滤,它将取代Maven已知的属性,如project.artifactId。然后Spring配置负责插值management.metrics.tags.application。
一个application.yml示例:
spring:
application:
name: ${project.artifactId}
management:
metrics:
tags:
application: ${spring.application.name}https://stackoverflow.com/questions/74293289
复制相似问题