skywalking-java/docs/en/setup/backend/backend-health-check.md

63 lines
1.5 KiB
Markdown

# Health Check
Health check intends to provide a unique approach to check the healthy status of OAP server. It includes the health status
of modules, GraphQL and gRPC services readiness.
## Health Checker Module.
Health Checker module could solute how to observe the health status of modules. We can active it by below:
```yaml
health-checker:
selector: ${SW_HEALTH_CHECKER:default}
default:
checkIntervalSeconds: ${SW_HEALTH_CHECKER_INTERVAL_SECONDS:5}
```
Notice, we should enable `telemetry` module at the same time. That means the provider should not be `-` and `none`.
After that, we can query OAP server health status by querying GraphQL:
```
query{
checkHealth{
score
details
}
}
```
If the OAP server is healthy, the response should be
```json
{
"data": {
"checkHealth": {
"score": 0,
"details": ""
}
}
}
```
Once some modules are unhealthy, for instance, storage H2 is down. The result might be like below:
```json
{
"data": {
"checkHealth": {
"score": 1,
"details": "storage_h2,"
}
}
}
```
You could refer to [checkHealth query](https://github.com/apache/skywalking-query-protocol/blob/master/common.graphql)
for more details.
## The readiness of GraphQL and gRPC
We could opt to above query to check the readiness of GraphQL.
OAP has implemented [gRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
We could use [grpc-health-probe](https://github.com/grpc-ecosystem/grpc-health-probe) or any other tools to check the
health of OAP gRPC services.