在我的Spring Boot App(2.0.0.M7)application.properties中,我设置了
magick convert -verbose difference.png -fuzz 7% -draw 'alpha 1,1 floodfill' test.png
然而,当我点击
management.endpoint.metrics.enabled=true
我得到404。
解决方案是什么?
答案 0 :(得分:41)
我想用更多的信息来增强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之前,只有application.yml
要通过HTTP提供执行器端点,需要启用并公开。
默认情况下:
只有/health
和/info
端点公开,无论您的应用程序中是否存在和配置了Spring Security。
所有端点但/shutdown
已启用(但仅公开/health
和/info
)
如果您想公开所有端点(并不总是一个好主意),您可以将management.endpoints.web.exposure.include=*
添加到application.properties
。如果您正在使用yml-configurations,请不要忘记引用通配符。
endpoints.xyz
开头的旧属性,转而使用以management.xyz
开头的属性有关完整文档,请参阅official doc以及migration guide
答案 1 :(得分:6)
将以下行添加到application.properties
文件中:
management.endpoints.web.exposure.include=metrics
就是这样。
答案 2 :(得分:3)
对我来说有用的是以下(采用YAML格式),使用spring boot 2 release:
management:
endpoints:
web:
exposure:
include: info, health, metrics
metrics:
export:
atlas:
enabled: false
还可以找到具体的文档here
答案 3 :(得分:3)
您需要在application.properties
文件中添加以下道具。在添加以下道具之前,我遇到了同样的问题。
management.endpoints.beans.enabled=false
management.endpoints.web.exposure.include=*
答案 4 :(得分:2)
好的,我找到了解决方案。我在application.properties
中添加了另一行management.endpoints.web.expose=*
然而,确保执行器端点非常重要
在这里阅读: https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html
答案 5 :(得分:1)
根据micrometer docs .Spring Boot 2.0.x通过弹簧启动执行器支持Micrometer开箱即用。
默认情况下,端点度量标准处于禁用状态,与Spring Boot 2的试金石一致,默认情况下应禁用任何可能暴露应用程序敏感数据的端点。可以通过设置:
management.endpoints.web.exposure.include:metrics
导航到/actuator/metrics
会显示可用的仪表名称列表。
要访问它们,请使用以下内容: http://localhost:8080/actuator/metrics/jvm.memory.used
答案 6 :(得分:0)
“ *”在YAML中具有特殊含义,因此,如果要包括(或排除)所有端点,请确保添加引号,如以下示例所示:
management:
endpoints:
web:
exposure:
include: "*"
答案 7 :(得分:0)
从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
。
答案 8 :(得分:0)
以下配置适用于我
server.servlet.context-path = / travel management.endpoints.web.exposure.include = *
然后,您需要添加上下文路径: http://localhost:8080/travel/actuator/metrics/
答案 9 :(得分:0)
management:
endpoints:
web:
base-path: "/"
exposure:
include: '*'
它应该像那样工作。 *
表示公开所有端点
答案 10 :(得分:0)
正如@senseiwu所述,与以前的版本不同,Spring Boot 2中的Actuator禁用了大多数端点。 我们是否要启用所有这些,我们可以设置
management.endpoints.web.exposure.include=*
或者,我们可以列出应启用的端点。
您可以轻松使用hal-browser,这是一个有用的UI,通过添加以下依赖项将其映射到“ /”路径:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
在hal-browser中,您需要键入/ actuator以查看所有端点。 它已经在Spring Boot 2.3.0.M2中进行了测试,并且运行良好。 您可以通过以下链接了解更多信息:
答案 11 :(得分:0)
在application.properties中添加以下属性为我解决了问题:
management.health.defaults.enabled=false
答案 12 :(得分:0)
将千分尺的完整配置放在这里。以下一个对我来说工作正常。我将它用于 ELK 堆栈
management:
metrics:
enable:
jvm: true
all: true
export:
elastic:
enables: true
step: 10s
index: micrometer-${spring.application.name}
host: http://localhost:9200
simple:
enabled: true
distribution:
percentiles-histogram:
http:
server:
requests: true
sla:
http:
server:
requests: 100ms, 400ms, 500ms, 2000ms
percentiles:
http:
server:
requests: 0.5, 0.9, 0.95, 0.99
endpoint:
metrics:
enabled: true
endpoints:
web:
exposure:
include: '*'
答案 13 :(得分:0)
在 management.endpoints.web.exposure.include=metrics
中设置 application.properties
以使用 HTTP 公开 /actuator/metrics
。
参考:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html
参考:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints
执行器端点可让您监控应用程序并与之交互。 Spring Boot 包含许多内置端点,并允许您添加自己的端点。例如,健康端点提供基本的应用健康信息。
每个单独的端点都可以通过 enabled
或 disabled
exposed
或 HTTP
和 JMX
(远程访问)。端点在启用和公开时被视为可用。 内置端点只有在可用时才会自动配置。大多数应用程序选择通过 HTTP 公开,其中端点的 ID 以及 /actuator 的前缀映射到 URL。例如,默认情况下,health 端点映射到 /actuator/health。
默认情况下,除关闭之外的所有端点都处于启用状态。