// Use PROACTIVELY when setting up OpenTelemetry monitoring for Claude Code usage tracking, cost analysis, or productivity metrics. Provides local PoC mode (full Docker stack with Grafana) and enterprise mode (centralized infrastructure). Configures telemetry collection, imports dashboards, and verifies data flow. Not for non-Claude telemetry or custom metric definitions.
| name | otel-monitoring-setup |
| version | 0.2.1 |
| description | Use PROACTIVELY when setting up OpenTelemetry monitoring for Claude Code usage tracking, cost analysis, or productivity metrics. Provides local PoC mode (full Docker stack with Grafana) and enterprise mode (centralized infrastructure). Configures telemetry collection, imports dashboards, and verifies data flow. Not for non-Claude telemetry or custom metric definitions. |
Automated workflow for setting up OpenTelemetry telemetry collection for Claude Code usage monitoring, cost tracking, and productivity analytics.
| User Request | Mode | Action |
|---|---|---|
| "Set up telemetry locally" | Mode 1 | Full PoC stack |
| "I want to try OpenTelemetry" | Mode 1 | Full PoC stack |
| "Connect to company endpoint" | Mode 2 | Enterprise config |
| "Set up for team rollout" | Mode 2 | Enterprise + docs |
| "Dashboard not working" | Troubleshoot | See known issues |
Goal: Complete local telemetry stack for individual developer
Creates:
Prerequisites:
Time: 5-7 minutes
Workflow: modes/mode1-poc-setup.md
Output:
Goal: Connect Claude Code to centralized company infrastructure
Required Info:
Time: 2-3 minutes
Workflow: modes/mode2-enterprise.md
Output:
REQUIRED in settings.json (without these, telemetry won't work):
{
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://localhost:4317"
}
}
Must restart Claude Code after settings changes!
Always run before setup:
# Verify Docker is running
docker info > /dev/null 2>&1 || echo "Start Docker Desktop first"
# Check available ports
for port in 3000 4317 4318 8889 9090; do
lsof -i :$port > /dev/null 2>&1 && echo "Port $port in use"
done
# Check disk space (need 2GB)
df -h ~/.claude
# Start telemetry stack
~/.claude/telemetry/start-telemetry.sh
# Stop (preserves data)
~/.claude/telemetry/stop-telemetry.sh
# Full cleanup (removes all data)
~/.claude/telemetry/cleanup-telemetry.sh
reference/known-issues.mdDashboard has wrong UID. Detect your UID:
curl -s http://admin:admin@localhost:3000/api/datasources | jq '.[0].uid'
Replace in dashboard JSON and re-import.
Metrics use claude_code_claude_code_* format. Update dashboard queries accordingly.
modes/mode1-poc-setup.md - Detailed local setup workflowmodes/mode2-enterprise.md - Enterprise configuration stepsreference/known-issues.md - Troubleshooting guidetemplates/ - Configuration file templatesdashboards/ - Grafana dashboard JSON filesVersion: 1.1.0 | Author: Prometheus Team