Mojule Docs
Exporter Drift Runbook
A Telemetry Health alert means a team went silent versus its own reporting cadence. The cause is almost always exporter config drift on the customer side — an MDM rollback, an admin toggle, an egress rule — not a Mojule outage. Walk these steps in order; the alert auto-resolves once data flows again.
1. Confirm what is actually silent
Open the dashboard's Telemetry Health panel and read the per-signal dots for the silent team. The failure shape narrows the cause:
- All three signals dark — the exporter is off entirely (telemetry disabled, endpoint unreachable, or token rejected). Continue with steps 2–4.
- Only traces dark — the trace beta flags drifted. Jump to step 5.
- One team dark, others flowing — org-level config is fine; that team's machines lost their managed settings (step 4) or sit behind a new egress rule (step 2).
2. Check the collector endpoint from an affected machine
From a machine on the silent team, verify Mojule's ingest endpoint is reachable — corporate egress allowlists fail silently:
Shell
curl -i https://ingest.mojule.cloud/v1/logs -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-mtk-token>" \
-d '{"resourceLogs":[]}'A 202 means network + token are fine — skip to step 4. A connection failure or timeout means an egress allowlist or proxy is blocking ingest.mojule.cloud; add it to the allowlist.
3. Verify the ingest token
A 401 from step 2 means the bearer token is invalid — most often it was rotated without re-deploying the OTEL config. In Dashboard → Connection check the token's metadata (created/rotated date). If it was rotated, re-issue the managed settings (step 4) so every machine carries the current mtk_ token. If the token may be leaked, rotate it there first — then re-issue.
4. Re-issue the Claude Code managed settings
The dashboard's Connection panel generates the current, ready-to-deploy managed-settings.json (collector URL + token + every required OTEL key). Re-download it and push it through your MDM to the affected machines:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux:
/etc/claude-code/managed-settings.json - Windows:
C:\Program Files\ClaudeCode\managed-settings.json
MDM rollbacks and OS reimages are the most common drift source: the file is simply gone. For Claude Cowork, re-check the org Monitoring panel instead — an admin toggle there silently stops the stream.
5. Restore the trace flags (traces-only silence)
Trace spans require the beta flag AND an explicit per-signal endpoint — without either, traces silently stop while logs and metrics keep flowing:
managed-settings.json env block (trace keys)
{
"CLAUDE_CODE_ENHANCED_TELEMETRY_BETA": "1",
"OTEL_TRACES_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "https://ingest.mojule.cloud/v1/traces"
}6. Restore the content flags (events flow, content missing)
If events arrive but prompts show as the literal <REDACTED> and tool inputs are missing, the content toggles drifted off:
managed-settings.json env block (content keys)
{
"OTEL_LOG_USER_PROMPTS": "1",
"OTEL_LOG_TOOL_DETAILS": "1"
}7. Confirm recovery
Have one person on the silent team run a short Claude Code session. Within a few minutes the team's signal dots flip back to flowing and the liveness alert resolves itself — no manual acknowledgement exists, by design: only data closes an alert.