System status and component health
GET/api/health/status
Returns per-component health status with system metrics. Requires authentication.
Responses
- 200
- 401
- 403
- 503
All components healthy.
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Overall health status.
components
object
required
Per-component health status.
property name*
ComponentHealth
Component health status.
Error message when component is unhealthy.
Listen address of the component (if applicable).
Application version.
Time since server started.
nats
object
Connected NATS server URL.
NATS server version.
streams
object[]
JetStream stream statistics.
Stream name.
Number of messages in the stream.
Total bytes in the stream.
Number of consumers on the stream.
kv_buckets
object[]
KV bucket statistics.
KV bucket name.
Number of keys in the bucket.
Total bytes in the bucket.
object_stores
object[]
Object Store statistics.
Object Store bucket name.
Total bytes in the store.
jobs
object
Total number of jobs.
Number of unprocessed jobs.
Number of jobs currently processing.
Number of completed jobs.
Number of failed jobs.
Number of jobs in the dead letter queue.
agents
object
Total number of registered agents.
Number of agents with Ready status.
agents
object[]
Per-agent registration details.
Agent hostname.
Formatted label string.
Time since last heartbeat registration.
consumers
object
Total number of JetStream consumers.
consumers
object[]
Per-consumer details.
Consumer name.
Messages not yet delivered.
Messages delivered but not yet acknowledged.
Messages redelivered and not yet acknowledged.
registry
object[]
All registered components with health details.
Component type (agent, api, nats).
Component hostname.
Component status.
Active conditions.
Time since component started.
Process CPU usage percentage.
Process RSS memory in bytes.
{
"status": "ok",
"components": {},
"version": "0.1.0",
"uptime": "2h30m",
"nats": {
"url": "nats://localhost:4222",
"version": "2.10.0"
},
"streams": [
{
"name": "JOBS",
"messages": 42,
"bytes": 1024,
"consumers": 1
}
],
"kv_buckets": [
{
"name": "job-queue",
"keys": 10,
"bytes": 2048
}
],
"object_stores": [
{
"name": "file-objects",
"size": 5242880
}
],
"jobs": {
"total": 100,
"unprocessed": 5,
"processing": 2,
"completed": 90,
"failed": 3,
"dlq": 0
},
"agents": {
"total": 5,
"ready": 5,
"agents": [
{
"hostname": "web-01",
"labels": "group=web.prod",
"registered": "15s ago"
}
]
},
"consumers": {
"total": 2,
"consumers": [
{
"name": "query_any_web_01",
"pending": 0,
"ack_pending": 3,
"redelivered": 0
}
]
},
"registry": [
{
"type": "agent",
"hostname": "web-01",
"status": "Ready",
"conditions": [
"string"
],
"age": "7h 6m",
"cpu_percent": 2.1,
"mem_bytes": 134217728
}
]
}
Unauthorized - API key required.
- application/json
- Schema
- Example (from schema)
Schema
A description of the error that occurred.
Additional details about the error.
The error code.
{
"error": "Failed to retrieve status.",
"details": "Failed due to network timeout.",
"code": 500
}
Forbidden - Insufficient permissions.
- application/json
- Schema
- Example (from schema)
Schema
A description of the error that occurred.
Additional details about the error.
The error code.
{
"error": "Failed to retrieve status.",
"details": "Failed due to network timeout.",
"code": 500
}
One or more components unhealthy.
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Overall health status.
components
object
required
Per-component health status.
property name*
ComponentHealth
Component health status.
Error message when component is unhealthy.
Listen address of the component (if applicable).
Application version.
Time since server started.
nats
object
Connected NATS server URL.
NATS server version.
streams
object[]
JetStream stream statistics.
Stream name.
Number of messages in the stream.
Total bytes in the stream.
Number of consumers on the stream.
kv_buckets
object[]
KV bucket statistics.
KV bucket name.
Number of keys in the bucket.
Total bytes in the bucket.
object_stores
object[]
Object Store statistics.
Object Store bucket name.
Total bytes in the store.
jobs
object
Total number of jobs.
Number of unprocessed jobs.
Number of jobs currently processing.
Number of completed jobs.
Number of failed jobs.
Number of jobs in the dead letter queue.
agents
object
Total number of registered agents.
Number of agents with Ready status.
agents
object[]
Per-agent registration details.
Agent hostname.
Formatted label string.
Time since last heartbeat registration.
consumers
object
Total number of JetStream consumers.
consumers
object[]
Per-consumer details.
Consumer name.
Messages not yet delivered.
Messages delivered but not yet acknowledged.
Messages redelivered and not yet acknowledged.
registry
object[]
All registered components with health details.
Component type (agent, api, nats).
Component hostname.
Component status.
Active conditions.
Time since component started.
Process CPU usage percentage.
Process RSS memory in bytes.
{
"status": "ok",
"components": {},
"version": "0.1.0",
"uptime": "2h30m",
"nats": {
"url": "nats://localhost:4222",
"version": "2.10.0"
},
"streams": [
{
"name": "JOBS",
"messages": 42,
"bytes": 1024,
"consumers": 1
}
],
"kv_buckets": [
{
"name": "job-queue",
"keys": 10,
"bytes": 2048
}
],
"object_stores": [
{
"name": "file-objects",
"size": 5242880
}
],
"jobs": {
"total": 100,
"unprocessed": 5,
"processing": 2,
"completed": 90,
"failed": 3,
"dlq": 0
},
"agents": {
"total": 5,
"ready": 5,
"agents": [
{
"hostname": "web-01",
"labels": "group=web.prod",
"registered": "15s ago"
}
]
},
"consumers": {
"total": 2,
"consumers": [
{
"name": "query_any_web_01",
"pending": 0,
"ack_pending": 3,
"redelivered": 0
}
]
},
"registry": [
{
"type": "agent",
"hostname": "web-01",
"status": "Ready",
"conditions": [
"string"
],
"age": "7h 6m",
"cpu_percent": 2.1,
"mem_bytes": 134217728
}
]
}