web-dev-qa-db-ja.com

Spring Boot- / healthエンドポイントの場所を/ 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"
}
9

Spring Boot 2については以下を参照してください。*https://stackoverflow.com/a/50364513/2193477


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);
            }
}
_

isGenericEndpoint(...)falseに対してHealthEndpointを返すため、_endpoints.health.path_の設定を拒否します。多分それはバグか何かです。

更新:どうやらこれはバグであり、 _1.3.3.RELEASE_ バージョンで修正されました。したがって、このバージョンでは、ヘルスモニタリングパスとして_/ping/me_を使用できます。

6
Ali Dehghani

アクチュエーターはSpringBoot 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 Boot2.0.0で非推奨になりました。

17