Spring Boot 有没有办法在标准的普罗米修斯测微计上加上“应用”标签?

ca1c2owp  于 2022-11-05  发布在  Spring
关注(0)|答案(2)|浏览(125)

我有几个带有actuator和公开的prometheus指标的Spring启动微服务。


# HELP process_uptime_seconds The uptime of the Java virtual machine

# TYPE process_uptime_seconds gauge

process_uptime_seconds 3074.971

但是没有application标记,所以我无法将其绑定到grafana Jmeter 板中的某个应用程序...
此外,我希望有一些微服务的应用程序示例,所以一般来说,这将是伟大的添加一个instance标记也。
有没有办法用这些标记自定义标准指标?

bweufnob

bweufnob1#

添加标记的最佳方法是使用Prometheus服务发现,这可以将这些标记排除在应用程序代码之外,并使应用程序不必担心标记的位置。
然而,有时候如果您确实需要这些额外的标签(由于服务具有额外的洞察力,即Prometheus服务发现没有浮出水面),您就不能使用Java简单客户端(尽管Go客户端确实支持这一点)
我发现这个特性是通过一个名为“Common Tags”的测微计特性提供的,这个特性 Package 了Prometheus Java客户端。

registry.config().commonTags("stack", "prod", "region", "us-east-1");
fwzugrvs

fwzugrvs2#

我通常做的是在资源文件(例如,application.yml)上使用Maven过滤,这将替换Maven已知的属性,如project.artifactId。Springs配置然后负责插值management.metrics.tags.application
一个应用程序.yml示例:

spring:
  application:
    name: ${project.artifactId}
management:    
  metrics:
    tags:
      application: ${spring.application.name}

相关问题