Skip to content

Telemetry

Edge appliances continuously collect metrics, logs, and security events. Data is queued locally and flushed to the Ingestor in batches (~15s, up to 100 items).

sequenceDiagram
    participant Edge as Edge Appliance
    participant Ingestor as Ingestor Service
    participant SQL as Azure SQL

    loop Flush cycle
        Edge->>Edge: Drain ingest_queue
        Edge->>Ingestor: POST /v1/ingest
        Note right of Edge: body device_id plus items array
        Ingestor->>Ingestor: Validate X-Device-Key
        Ingestor->>SQL: Route to per-kind tables
        Ingestor-->>Edge: 200 OK
    end
{
"device_id": "550e8400-e29b-41d4-a716-446655440000",
"items": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"kind": "telemetry",
"payload": { "cpu_percent": 12.5, "ts": "2026-05-27T12:00:00Z" }
}
]
}

Auth: X-Device-Key = device api_key from claim-complete. Full contract: Payload Schema.

EnvironmentURL
Productionhttps://ingest.cloud.monozu.io
Local devhttp://localhost:8081

Configured on the Edge appliance (config / env), not the Cloud API host.

Ingestor writes to per-kind tables (e.g. telemetry, logs) via its router — not a single generic ingest_events write path. See ingestor/internal/domain/ingest/router.go.