diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-01-31 14:32:38 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-01-31 14:32:38 +0100 |
commit | 166b1d959dbea3f3dec5ad26ad60c1c59e2bea85 (patch) | |
tree | 3a62c132a78b46f7054845bb13d100750087f18e /application-model | |
parent | 2f05c797b69f0a261a347d769301a856a117170b (diff) |
Health rest API
Makes a new REST API /orchestrator/v1/health/<ApplicationId> that shows the
list of services that are monitored for health. This information is currently a
bit difficult to infer from
/orchestrator/v1/instances/<ApplicationInstanceReference> since it is the
combined view of health and Slobrok. There are already APIs for Slobrok.
Example content:
$ curl -s localhost:19071/orchestrator/v1/health/hosted-vespa:zone-config-serve\
rs:default|jq .
{
"services": [
{
"clusterId": "zone-config-servers",
"serviceType": "configserver",
"configId": "zone-config-servers/cfg6",
"status": {
"serviceStatus": "UP",
"lastChecked": 1548939111.708718,
"since": 1548939051.686223,
"endpoint": "http://cfg4.prod.cd-us-central-1.vespahosted.ne1.yahoo.com:19071/state/v1/health"
}
},
...
]
}
This view is slightly different from the application model view, just because
that's exactly how the health monitoring is structured (individual monitors
against endpoints).
The "endpoint" information will also be added to /instances if the status comes
from health and not Slobrok.
Diffstat (limited to 'application-model')
-rw-r--r-- | application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatusInfo.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatusInfo.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatusInfo.java index da2b1bb6ad8..e781195eb2a 100644 --- a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatusInfo.java +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceStatusInfo.java @@ -17,21 +17,29 @@ public class ServiceStatusInfo { private final Optional<Instant> since; private final Optional<Instant> lastChecked; private final Optional<String> error; + private final Optional<String> endpoint; public ServiceStatusInfo(ServiceStatus status) { - this(status, Optional.empty(), Optional.empty(), Optional.empty()); + this(status, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); } - public ServiceStatusInfo(ServiceStatus status, Instant since, Instant lastChecked, Optional<String> error) { - this(status, Optional.of(since), Optional.of(lastChecked), error); + public ServiceStatusInfo(ServiceStatus status, Instant since, Instant lastChecked, Optional<String> error, + Optional<String> endpoint) { + this(status, Optional.of(since), Optional.of(lastChecked), error, endpoint); } public ServiceStatusInfo(ServiceStatus status, Optional<Instant> since, Optional<Instant> lastChecked, - Optional<String> error) { + Optional<String> error, Optional<String> endpoint) { this.status = status; this.since = since; this.lastChecked = lastChecked; this.error = error; + this.endpoint = endpoint; + } + + @JsonProperty("endpoint") + public String endpointOrNull() { + return endpoint.orElse(null); } @JsonProperty("serviceStatus") |