【发布时间】:2020-06-06 07:14:32
【问题描述】:
我正在尝试从使用 spring boot 2 实现的 api 向 prometheus 公开计时指标。我已经包含了以下依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
我通过 spring-cloud-starter-parent Finchley.SR1 管理依赖项,它在 spring-boot-starter-actuator 上提供了 2.0.4.RELEASE 版本,在 micrometer-registry-prometheus 上提供了 1.0.6 版本。
/actuator/prometheus 端点正在工作且可访问,但不包括我需要的指标。当我查看 /acutator/metrics 时,那里没有列出“http.server.requests”指标:
{
"names": [
"jvm.memory.max",
"cache.eviction.weight",
"cache.gets",
"process.files.max",
"jvm.gc.memory.promoted",
"tomcat.cache.hit",
"system.load.average.1m",
"tomcat.cache.access",
"jvm.memory.used",
"jvm.gc.max.data.size",
"jvm.gc.pause",
"jvm.memory.committed",
"system.cpu.count",
"logback.events",
"tomcat.global.sent",
"jvm.buffer.memory.used",
"tomcat.sessions.created",
"jvm.threads.daemon",
"system.cpu.usage",
"jvm.gc.memory.allocated",
"tomcat.global.request.max",
"tomcat.global.request",
"tomcat.sessions.expired",
"jvm.threads.live",
"jvm.threads.peak",
"tomcat.global.received",
"process.uptime",
"cache.puts",
"cache.size",
"cache.evictions",
"tomcat.sessions.rejected",
"process.cpu.usage",
"tomcat.threads.config.max",
"jvm.classes.loaded",
"jvm.classes.unloaded",
"tomcat.global.error",
"tomcat.sessions.active.current",
"tomcat.sessions.alive.max",
"jvm.gc.live.data.size",
"tomcat.servlet.request.max",
"tomcat.threads.current",
"tomcat.servlet.request",
"process.files.open",
"jvm.buffer.count",
"jvm.buffer.total.capacity",
"tomcat.sessions.active.max",
"tomcat.threads.busy",
"process.start.time",
"tomcat.servlet.error"
]
}
根据文档,以及我在谷歌上可以找到的所有内容,它应该是开箱即用自动配置的指标之一。
我已经尝试过将 spring.metrics.web.server.auto-time-requests 属性设置为 true,并在我正在测试的端点上使用 @Timed 注释,但无论哪种方式我都一无所获。
我发现这个已解决的问题,其中有人有相同的症状,但他们使用的是 spring boot 1.5,他们的问题是我没有的不必要的额外依赖:
Actuator /metrics endpoint does not include http.server.requests
知道什么会导致执行器不公开 http.server.requests 指标吗?
我应该补充一点,我还有 6 项与此类似的其他服务,其中指标按预期工作,所以它只是这 7 项服务中的一项无法正常工作。我不知道这个有什么不同。我什至尝试将其剥离以删除其他六个中不存在的任何依赖项,但这个仍然不会报告该指标。
【问题讨论】:
标签: spring-boot spring-boot-actuator spring-micrometer