0

在 Consul 中可以查看 SpringBoot 应用程序中配置的健康状态。

谁能知道让我知道通过 Actuator 在 Consul 中可以看到哪些其他指标(除了健康)?

或者我们可以让 Consul 拉取/调用服务的任何服务/URL,以便可以在 consul 中查看响应?

4

1 回答 1

1

Consul 使用健康端点来确定服务实例是否健康。如果您想要考虑一些自定义指标的自定义健康状态,您应该实现 HealthIndicator 接口。

management.security.enabled=false您可以通过在 application.properties中设置来在 health api 中公开更多信息

在这种情况下,您将在您的服务的领事管理 UI 中看到类似的内容

HTTP GET http://192.168.0.102:8080/health: 200  Output: {"description":"Composite Discovery Client","status":"UP","discoveryComposite":{"description":"Composite Discovery Client","status":"UP","discoveryClient":{"description":"Composite Discovery Client","status":"UP","services":["application","consul"]}},"diskSpace":{"status":"UP","total":499963170816,"free":341478899712,"threshold":10485760},"consul":{"status":"UP","leader":"127.0.0.1:8300","services":{"application":[],"consul":[]}},"hystrix":{"status":"UP"}}

您可以将健康 URL 配置到不同的端点。例如,如果您指定spring.cloud.consul.discovery.healthCheckPath=/health2,那么您的 spring-boot 实例将使用以下 json 注册(请参见下面的日志片段):

Registering service with consul: NewService{id='application', name='application', tags=[], address='192.168.0.102', port=8080, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://192.168.0.102:8080/health2', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
于 2018-02-14T06:02:27.293 回答