Spring 引导 - 将 /health 端点的位置更改为 /ping/me
Spring Boot - Change the location of the /health endpoint to /ping/me
我将 endpoints.health.path
属性 设置为 /ping/me
。但是我无法使用 http://localhost:9000/ping/me 访问端点
它仅适用于 http://localhost:9000/health。我错过了什么?
这是应用程序属性文件中的代码。
#Configuration for Health endpoint
endpoints.health.id=health
endpoints.health.path=/ping/me
endpoints.health.enabled=true
endpoints.health.sensitive=false
#Manage endpoints
management.port=9000
management.health.diskspace.enabled=false
我得到的回复是:
{
"timestamp" : 1455736069839,
"status" : 404,
"error" : "Not Found",
"message" : "Not Found",
"path" : "/ping/me"
}
Spring 引导 2 见下文*
MvcEndpoints
负责读取 endpoints.{name}.path
配置并以某种方式在其 afterPropertiesSet
方法中:
for (Endpoint<?> endpoint : delegates) {
if (isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()) {
EndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);
String path = this.applicationContext.getEnvironment()
.getProperty("endpoints." + endpoint.getId() + ".path");
if (path != null) {
adapter.setPath(path);
}
this.endpoints.add(adapter);
}
}
它拒绝设置 endpoints.health.path
,因为 isGenericEndpoint(...)
为 HealthEndpoint
返回 false
。可能是 bug 什么的。
更新: 显然这是一个错误,已在 1.3.3.RELEASE
版本中修复。因此,您可以在该版本中使用 /ping/me
作为您的健康监控路径。
执行器在 Spring Boot 2.0.0 中变得与技术无关,因此它现在不依赖于 MVC。因此,如果您使用 Spring Boot 2.0.x,您只需添加以下配置属性:
# custom actuator base path: use root mapping `/` instead of default `/actuator/`
management.endpoints.web.base-path=
# override endpoint name for health check: `/health` => `/ping/me`
management.endpoints.web.path-mapping.health=/ping/me
如果您不覆盖 management.endpoints.web.base-path
,您的健康检查将在 /actuator/ping/me
进行。
endpoints.*
等属性在 Spring Boot 2.0.0 中已弃用。
我将 endpoints.health.path
属性 设置为 /ping/me
。但是我无法使用 http://localhost:9000/ping/me 访问端点
它仅适用于 http://localhost:9000/health。我错过了什么?
这是应用程序属性文件中的代码。
#Configuration for Health endpoint
endpoints.health.id=health
endpoints.health.path=/ping/me
endpoints.health.enabled=true
endpoints.health.sensitive=false
#Manage endpoints
management.port=9000
management.health.diskspace.enabled=false
我得到的回复是:
{
"timestamp" : 1455736069839,
"status" : 404,
"error" : "Not Found",
"message" : "Not Found",
"path" : "/ping/me"
}
Spring 引导 2 见下文*
MvcEndpoints
负责读取 endpoints.{name}.path
配置并以某种方式在其 afterPropertiesSet
方法中:
for (Endpoint<?> endpoint : delegates) {
if (isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()) {
EndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);
String path = this.applicationContext.getEnvironment()
.getProperty("endpoints." + endpoint.getId() + ".path");
if (path != null) {
adapter.setPath(path);
}
this.endpoints.add(adapter);
}
}
它拒绝设置 endpoints.health.path
,因为 isGenericEndpoint(...)
为 HealthEndpoint
返回 false
。可能是 bug 什么的。
更新: 显然这是一个错误,已在 1.3.3.RELEASE
版本中修复。因此,您可以在该版本中使用 /ping/me
作为您的健康监控路径。
执行器在 Spring Boot 2.0.0 中变得与技术无关,因此它现在不依赖于 MVC。因此,如果您使用 Spring Boot 2.0.x,您只需添加以下配置属性:
# custom actuator base path: use root mapping `/` instead of default `/actuator/`
management.endpoints.web.base-path=
# override endpoint name for health check: `/health` => `/ping/me`
management.endpoints.web.path-mapping.health=/ping/me
如果您不覆盖 management.endpoints.web.base-path
,您的健康检查将在 /actuator/ping/me
进行。
endpoints.*
等属性在 Spring Boot 2.0.0 中已弃用。