我正在尝试在Sping Boot 2.3服务中公开其他执行器端点。正在尝试添加端点(如prometheus)和监控指标。但由于某种原因,公开的端点被锁定到默认的记录器、健康、信息。
对于一些背景,在org中,有一个父Spring依赖项,它自动带来所有Spring要素,以及org中有用的一些通用代码。我在许多其他项目中使用了这个依赖项,并且能够成功地公开这些附加的执行器端点。然而,在这个包含多个工件的项目中,我无法编辑默认的公开的执行器端点。
打印configurableEnvironment
post init始终显示exposure属性,如下所示
management.endpoints.web.exposure.include = loggers,health,info
这是在尝试使用以下方法将此属性覆盖到扩展列表(loggers,health,info,Prometheus,metrics)之后:
- 通过
management.endpoint.metrics.enabled: true
启用特定端点 - 在application.yaml中指定这些值
- 将其作为命令行参数
Dmanagement.endpoints.web.exposure.include=loggers,health,info,prometheus,metrics
传递 - 使用
mvn dependency:tree
排除任何传递的执行器依赖性
我不相信这是由于org的父pom,可能是由于我们正在使用的另一个依赖关系。但是由于这个项目的规模,很难删除依赖项进行测试。有没有办法追踪到这些属性是在哪里设置的。或者是其他方法来强制暴露我想要的其他端点?
致动器配置
management:
endpoints:
web:
exposure:
include: metrics,prometheus,info,health,logging
endpoint:
env:
enabled: true
metrics:
enabled: true
info:
enabled: true
health:
enabled: true
show-details: always
beans:
enabled: true
caches:
enabled: true
threaddump:
enabled: true
prometheus:
enabled: true
执行器信息
{"_links":{"self":{"href":"http://localhost:9050/actuator","templated":false},"health":{"href":"http://localhost:9050/actuator/health","templated":false},"health-path":{"href":"http://localhost:9050/actuator/health/{*path}","templated":true},"info":{"href":"http://localhost:9050/actuator/info","templated":false},"loggers":{"href":"http://localhost:9050/actuator/loggers","templated":false},"loggers-name":{"href":"http://localhost:9050/actuator/loggers/{name}","templated":true}}}
1条答案
按热度按时间ryevplcw1#
你的问题缺乏一些背景,比如你的pom.xml或build.gradle文件和完整的application.yml配置。
我将通过基本步骤,你可能已经错过了。
首先,请确保您已经包含了Prometheus依赖项:
另外,不要忘记一些指标需要AOP依赖(例如custome计时器):
要启用Prometheus指标曝光,您应该在application.yml文件中指定这样的配置(看起来您做得很正确,但让我们在这里列出它以获得完整的图片):
要验证Prometheus端点是否已公开,请使用GET请求访问此URL:
http://localhost:8080/actuator/prometheus
如果这些步骤不能帮助您解决问题,请在问题中添加更多详细信息。