Get health status
The health API returns a report with the health status of Logstash and the pipelines that are running inside of it. The report contains a list of indicators that compose Logstash functionality.
Each indicator has a health status of: green, unknown, yellow, or red. The indicator provides an explanation and metadata describing the reason for its current health status.
The top-level status is controlled by the worst indicator status.
In the event that an indicator status is non-green, a list of impacts may be present in the indicator result which detail the functionalities that are negatively affected by the health issue. Each impact carries with it a severity level, an area of the system that is affected, and a simple description of the impact on the system.
Some health indicators can determine the root cause of a health problem and prescribe a set of steps that can be performed in order to improve the health of the system. The root cause and remediation steps are encapsulated in a diagnosis. A diagnosis contains a cause detailing a root cause analysis, an action containing a brief description of the steps to take to fix the problem, and the URL for detailed troubleshooting help.
NOTE: The health indicators perform root cause analysis of non-green health statuses. This can be computationally expensive when called frequently.
Query parameters
-
pretty
boolean If you append
?pretty=true
to the request, the JSON returned will be pretty formatted. Use it for debugging only!
curl \
--request GET 'http://api.example.com/_health_report' \
--user "username:password"
{
"symptom": "1 indicator is concerning (`pipelines`)",
"indicators": {
"pipelines": {
"status": "yellow",
"symptom": "1 indicator is concerning (`normal-completion-pipeline`)",
"indicators": {
"normal-completion-pipeline": {
"status": "yellow",
"details": {
"status": {
"state": "FINISHED"
}
},
"impacts": [
{
"impact_areas": [
"pipeline_execution"
]
}
],
"symptom": "The pipeline is concerning; 1 area is impacted and 1 diagnosis is available",
"diagnosis": [
{
"cause": "pipeline has finished running because its inputs have been closed and events have been processed",
"action": "if you expect this pipeline to run indefinitely, you will need to configure its inputs to continue receiving or fetching events"
}
]
}
}
}
}
}
{
"status": "red",
"symptom": "1 indicator is unhealthy (`pipelines`)",
"indicators": {
"pipelines": {
"status": "red",
"symptom": "1 indicator is unhealthy (`abnormal-termination-pipeline`)",
"indicators": {
"abnormal-termination-pipeline": {
"status": "red",
"details": {
"status": {
"state": "TERMINATED"
}
},
"impacts": [
{
"description": "the pipeline is not currently processing",
"impact_areas": [
"pipeline_execution"
]
}
],
"symptom": "The pipeline is unhealthy; 1 area is impacted and 1 diagnosis is available",
"diagnosis": [
{
"cause": "pipeline is not running, likely because it has encountered an error",
"action": "view logs to determine the cause of abnormal pipeline shutdown"
}
]
}
}
}
}
}
{
"status": "red",
"symptom": "1 indicator is unhealthy (`pipelines`)",
"indicators": {
"pipelines": {
"status": "red",
"symptom": "1 indicator is unhealthy (`blocked-pipeline`)",
"indicators": {
"blocked-pipeline": {
"status": "red",
"details": {
"flow": {
"worker_utilization": {
"last_1_minute": 100.0,
"last_5_minutes": 100.0
}
},
"status": {
"state": "RUNNING"
}
},
"impacts": [
{
"id": "logstash:health:pipeline:flow:impact:blocked_processing",
"severity": 1,
"description": "the pipeline is blocked",
"impact_areas": [
"pipeline_execution"
]
}
],
"symptom": "The pipeline is unhealthy; 1 area is impacted and 1 diagnosis is available",
"diagnosis": [
{
"id": "logstash:health:pipeline:flow:worker_utilization:diagnosis:5m-blocked",
"cause": "pipeline workers have been completely blocked for at least five minutes",
"action": "address bottleneck or add resources"
}
]
}
}
}
}
}