在我设置的Spring Boot App(2.0.0.M7)application.properties中
management.endpoint.metrics.enabled=true
但是,当我击中时
localhost:8080/actuator/metrics
我得到404。
什么是解决方案?
我想用更多的信息来增强OP的答案,因为我在最终绊倒这个解决方案之前有点挣扎,并且似乎有很多关于使用Spring Boot 2改变执行器行为的困惑
没有改变的是什么
您需要在spring-boot-starter-actuator中包含依赖项
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
如果要通过HTTP访问执行器端点,还需要向spring-boot-starter-web添加依赖项
所以你的pom依赖关系将如下所示
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
Spring Boot 2中引入的更改
/health
,/metrics
等端点在默认的根上下文中不再可用。它们从现在开始在http://{host}:{port}/actuator
上市。此外,您的应用程序的所有其他端点是否以某些其他上下文开头并不重要,例如/hello
- 执行器可在/actuator
而不是/hello/actuator
获得。/actuator
端点的响应默认启用HATEOAS。在Spring Boot 2之前,if HATEOAS is on the classpath and explicitly enabled只有application.yml
/health
和/info
端点。
所有端点,但/shutdown
启用(虽然只暴露/health
和/info
)management.endpoints.web.exposure.include=*
添加到application.properties
来实现。如果您使用的是yml-configurations,请不要忘记引用通配符。endpoints.xyz
开头的旧属性不推荐使用以management.xyz
开头的属性有关完整文档,请参阅official doc以及migration guide
将以下行添加到application.properties
文件中:
management.endpoints.web.exposure.include=metrics
就这样。
对我有用的是以下(以YAML格式)使用spring boot 2版本:
management:
endpoints:
web:
exposure:
include: info, health, metrics
metrics:
export:
atlas:
enabled: false
也可以找到具体的文件here
您需要在application.properties
文件中添加以下道具。在我添加以下道具之前,我遇到了同样的问题。
management.endpoints.beans.enabled=false
management.endpoints.web.exposure.include=*
“*”在YAML中具有特殊含义,因此如果要包含(或排除)所有端点,请务必添加引号,如以下示例所示:
management:
endpoints:
web:
exposure:
include: "*"
好的,我找到了解决方案。我在application.properties中添加了另一行
management.endpoints.web.expose=*
但是,确保执行器端点很重要
在这里阅读:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html
根据micrometer docs .Spring Boot 2.0.x通过Spring Boot Actuator开箱即用。 默认情况下,端点度量标准处于禁用状态,与Spring Boot 2的试金石一致,默认情况下应禁用任何可能暴露应用程序敏感数据的端点。可以通过设置启用它:
management.endpoints.web.exposure.include:metrics
导航到/actuator/metrics
会显示可用的仪表名称列表。
要访问它们,请使用以下内容:http://localhost:8080/actuator/metrics/jvm.memory.used
有同样的问题从Spring Boot 1.5.15升级到2.1.4
需要修改我的pom.xml
中Spring Boot执行器的原始依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
至:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
注意在starter
中添加了artifactId
这个词。