我的团队将我们的微服务从Sping Boot 1迁移到版本2,由于执行器发生了变化,我们通过prometheus jmx导出器导出的健康端点指标不再起作用。
通常的/actuator/health按预期工作,但prometheus-jmx-exporter不会拾取它,尽管尝试了以下几种方法:
- 我更改了exporter-config.yaml中的元信息,以反映 Boot 2中的名称更改
- 我将io.micrometer:micrometer-registration-prometheus添加到我们的build.gradle中,以查看这是否是问题所在
- 我根据Sping Boot 2文档公开了web和jmx端点
所以现在我的想法用完了,并会感谢任何提示oyu可能能够给予我
旧的prometheus-jmx-exporter exporter-config.yaml:
---
lowercaseOutputName: true
lowercaseOutputLabelNames: true
whitelistObjectNames: ["org.springframework.boot:type=Endpoint,name=healthEndpoint"]
rules:
- pattern: 'org.springframework.boot<type=Endpoint, name=healthEndpoint><(.*, )?(.*)>(.*):'
name: health_endpoint_$1$3
attrNameSnakeCase: true
新建prometheus-jmx-exporter exporter-config.yaml:
---
lowercaseOutputName: true
lowercaseOutputLabelNames: true
whitelistObjectNames: ["org.springframework.boot:type=Endpoint,name=Health"]
rules:
- pattern: 'org.springframework.boot<type=Endpoint, name=Health>'
name: health_endpoint_$1$3
attrNameSnakeCase: true
关于执行器端点的当前应用程序属性:
management.endpoints.web.exposure.include=info, health, refresh, metrics, prometheus
management.endpoints.jmx.exposure.include=health, metrics, prometheus
在Sping Boot 1中,使用旧的exporter-config.yaml,我会得到这样的结果:
# HELP health_endpoint_hystrix_status Invoke the underlying endpoint (org.springframework.boot<type=Endpoint, name=healthEndpoint><hystrix, status>status)
# TYPE health_endpoint_hystrix_status untyped
health_endpoint_hystrix_status 1.0
# HELP health_endpoint_status Invoke the underlying endpoint (org.springframework.boot<type=Endpoint, name=healthEndpoint><status>status)
# TYPE health_endpoint_status untyped
health_endpoint_status 1.0
但是随着所有的变化和在Sping Boot 2中,我什么也没得到。
1条答案
按热度按时间nnsrf1az1#
您可以配置自己的健康值并将其添加到Prometheus Metrics端点: