Telemetry Events
Event types
Section titled “Event types”| Type | Source | Fields |
|---|---|---|
llm_call | Runner | model, promptTokens, completionTokens, latencyMs, costUsd |
llm_error | Runner | model, errorType, retryCount |
tool_call | Runner | toolName, durationMs, success |
agent_complete | Runner | exitReason (cost_limit, max_iterations, halt, error, done) |
context_compaction | Runner | tokensBefore, tokensAfter |
guard_scan | Guard | side (write/read/snapshot), score, action, findingsCount |
agent_spawn | Orchestrator | agentId, role, type, model |
agent_exit | Orchestrator | agentId, exitReason, durationMs |
agent_kill | Orchestrator | agentId, killReason |
protocol_start | Orchestrator | protocolName, agentCount |
protocol_end | Orchestrator | durationMs, totalTokens, totalCostUsd |
dance_call | WebSocket | toolName, callerRole, latencyMs |
JSONL format
Section titled “JSONL format”Each line in the telemetry file is a JSON object:
{"type":"llm_call","timestamp":"2026-02-15T10:30:00.000Z","model":"claude-sonnet","promptTokens":500,"completionTokens":200,"latencyMs":1500,"costUsd":0.003}{"type":"tool_call","timestamp":"2026-02-15T10:30:01.500Z","toolName":"read_file","durationMs":12,"success":true}{"type":"guard_scan","timestamp":"2026-02-15T10:30:01.600Z","side":"write","score":5,"action":"PASS","findingsCount":0}Storage location
Section titled “Storage location”~/.honeyb/projects/<slug>/telemetry/<date>.jsonlOne file per day, auto-rotated.
Aggregation
Section titled “Aggregation”The reporter aggregates events into 5-minute summaries:
{ "period": "2026-02-15T10:30:00Z/2026-02-15T10:35:00Z", "counts": { "llm_call": 42, "tool_call": 18, "guard_scan": 60 }, "totalPromptTokens": 21000, "totalCompletionTokens": 8400, "totalCostUsd": 0.15, "avgLatencyMs": 1200, "errorRate": 0.02, "guardBlocks": 0, "guardWarns": 3}Aggregation runs for both local-only and cloud modes (needed for getSnapshot()).
Cloud sync
Section titled “Cloud sync”Opt-in via environment variables:
export TELEMETRY_ENDPOINT=https://carapace.honeyb.dev/v1/telemetryexport TELEMETRY_API_KEY=your-keyCloud receives aggregated summaries only, never individual events or raw content. Sends every 5 minutes.
CLI commands
Section titled “CLI commands”# Local overview (counts, totals, averages)wgl telemetry overview --local
# Recent eventswgl telemetry events --type llm_call --limit 20
# Daily breakdownwgl telemetry timeline
# Cloud overview (if configured)wgl telemetry overviewDashboard integration
Section titled “Dashboard integration”The incubator dashboard Metrics tab receives live telemetry via WebSocket:
- Push interval: every 10 seconds
- Message type:
metrics - Data source:
reporter.getSnapshot() - Display: stat cards, event breakdown bars, numeric averages