{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "sleet heartbeat",
"description": "The body of a heartbeat object.",
"type": "object",
"properties": {
"node_id": {
"description": "The node that wrote this heartbeat. Duplicates the object key so\nbodies are self-describing.",
"type": "string"
},
"services": {
"description": "Aggregate task states per offered service, across every database\nthe node owns.",
"type": "array",
"items": {
"$ref": "#/$defs/ServiceSummary"
}
},
"slatedb_version": {
"description": "The slatedb version the node runs.",
"type": "string"
},
"sleet_version": {
"description": "The sleet version the node runs.",
"type": "string"
},
"version": {
"description": "Heartbeat format version; bumped only on incompatible change.",
"type": "integer",
"format": "uint32",
"minimum": 0
}
},
"required": [
"version",
"node_id",
"sleet_version",
"slatedb_version",
"services"
],
"$defs": {
"Service": {
"description": "A per-database service.",
"oneOf": [
{
"description": "Garbage collection.",
"type": "string",
"const": "gc"
},
{
"description": "Standalone compaction coordinator (RFC-0025).",
"type": "string",
"const": "compactor-coordinator"
},
{
"description": "Compaction workers (RFC-0025).",
"type": "string",
"const": "compaction-workers"
},
{
"description": "Mirroring to per-database targets (RFC 0002).",
"type": "string",
"const": "mirror"
}
]
},
"ServiceSummary": {
"description": "Aggregate task states for one offered service. Only counts are\nreported, because a node may own tasks for many thousands of\ndatabases.",
"type": "object",
"properties": {
"backoff": {
"description": "Owned tasks that crashed and are waiting out a restart delay.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"running": {
"description": "Owned tasks currently running.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"service": {
"description": "The offered service these counts cover.",
"$ref": "#/$defs/Service"
}
},
"required": [
"service",
"running",
"backoff"
]
}
}
}