Comprehensive Claude Code telemetry via 10 hooks capturing sessions, conversations, tools, subagents, context, permissions, and repository analytics. Use when analyzing detailed usage patterns beyond default OTEL.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill enhanced-telemetry --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Enhanced Telemetry?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-enhanced-telemetry)More formats (shields.io, HTML) on the badges page.
---
name: enhanced-telemetry
description: Comprehensive Claude Code telemetry via 10 hooks capturing sessions, conversations, tools, subagents, context, permissions, and repository analytics. Use when analyzing detailed usage patterns beyond default OTEL.
---
# Enhanced Telemetry v2
Captures comprehensive Claude Code metrics via ALL 10 available hooks, providing deep observability beyond default OTEL telemetry.
## What It Captures
### Session Analytics
- Session lifecycle (start/end)
- Session duration
- Session source (startup/resume/clear/compact)
- Session termination reason
- Permission mode
### Conversation Analytics
- Turn count per session
- Prompt patterns (question/debugging/creation/ultrathink)
- Prompt length and token estimates
- Conversation style distribution
### Tool Analytics
- Tool call frequency
- Tool sequences (previous → current)
- Tool error rates
- Response sizes and token estimates
- File types accessed
### Subagent Analytics
- Subagents spawned per session
- Subagent types (Explore, Plan, general-purpose, etc.)
- Subagent completion tracking
### Context Analytics
- Estimated token usage
- Context window utilization percentage
- Context compaction events (manual vs auto)
- Token accumulation tracking
### Repository Analytics
- Activity per repository
- Tool usage by project
- Branch-level tracking
### Permission Analytics
- Permission requests
- Permission types
- Notification tracking
## 10 Hooks Instrumented
| Hook | Event Type | What's Captured |
|------|------------|-----------------|
| `SessionStart` | `session_start` | Source, permission mode, git info |
| `SessionEnd` | `session_end` | Duration, turns, tools, errors, subagents |
| `UserPromptSubmit` | `user_prompt` | Pattern, length, tokens, prompt hash |
| `PreToolUse` | `tool_call` | Tool name, details, sequence position |
| `PostToolUse` | `tool_result` | Status, response size, errors |
| `SubagentStop` | `subagent_complete` | Subagent count |
| `PermissionRequest` | `permission_request` | Notification type |
| `PreCompact` | `context_compact` | Trigger (manual/auto), token estimate |
| `Notification` | `notification` | Notification type |
| `Stop` | `session_end` | Same as SessionEnd |
## Configuration
**Settings file**: `.claude/settings.json`
```json
{
"hooks": {
"SessionStart": ["python3 .claude/hooks/enhanced-telemetry.py SessionStart"],
"SessionEnd": ["python3 .claude/hooks/enhanced-telemetry.py SessionEnd"],
"UserPromptSubmit": ["python3 .claude/hooks/enhanced-telemetry.py UserPromptSubmit"],
"PreToolUse": [{"matcher": ".*", "hooks": ["python3 .claude/hooks/enhanced-telemetry.py PreToolUse"]}],
"PostToolUse": [{"matcher": ".*", "hooks": ["python3 .claude/hooks/enhanced-telemetry.py PostToolUse"]}],
"SubagentStop": ["python3 .claude/hooks/enhanced-telemetry.py SubagentStop"],
"PermissionRequest": ["python3 .claude/hooks/enhanced-telemetry.py PermissionRequest"],
"PreCompact": ["python3 .claude/hooks/enhanced-telemetry.py PreCompact"],
"Notification": ["python3 .claude/hooks/enhanced-telemetry.py Notification"],
"Stop": ["python3 .claude/hooks/enhanced-telemetry.py Stop"]
}
}
```
## Viewing Data
### Grafana Dashboards
- **Enhanced Analytics**: http://localhost:3000/d/claude-code-enhanced
- **Deep Analytics**: http://localhost:3000/d/claude-code-deep
### LogQL Queries
```logql
# All enhanced telemetry
{job="claude_code_enhanced"} | json
# Session analytics
{job="claude_code_enhanced", event_type="session_end"} | json
# Tool calls
{job="claude_code_enhanced", event_type="tool_call"} | json
# Prompt patterns
sum by (pattern) (count_over_time({job="claude_code_enhanced", event_type="user_prompt"} | json [24h]))
# Skill usage
{job="claude_code_enhanced", event_type="skill_usage"} | json
# Context utilization
{job="claude_code_enhanced", event_type="context_utilization"} | json
# Tool sequences
{job="claude_code_enhanced", event_type="tool_call"} | json | line_format "{{.previous_tool}} → {{.tool_name}}"
# Subagent tracking
{job="claude_code_enhanced", event_type="tool_call", tool="Task"} | json
# Error analysis
{job="claude_code_enhanced", event_type="tool_result", status="error"} | json
# Context compaction
{job="claude_code_enhanced", event_type="context_compact"} | json
```
## Event Schemas
### session_start
```json
{
"event": "session_start",
"session_id": "abc123",
"source": "startup",
"permission_mode": "default",
"cwd": "/mnt/c/data/github/project",
"timestamp": "2025-11-27T08:00:00Z",
"git": {"repo_name": "project", "branch": "main"}
}
```
### session_end
```json
{
"event": "session_end",
"session_id": "abc123",
"reason": "prompt_input_exit",
"duration_seconds": 1847.5,
"turn_count": 25,
"tools_used": {"Read": 45, "Edit": 12, "Bash": 8},
"tool_sequence": ["Read", "Edit", "Bash", "Read"],
"subagents_spawned": 3,
"error_count": 2,
"timestamp": "2025-11-27T08:30:00Z"
}
```
### user_prompt
```json
{
"event": "user_prompt",
"turn_number": 5,
"prompt_length": 256,
"estimated_tokens": 64,
"prompt_hash": "a1b2c3d4",
"patterns": ["question", "debugging"],
"timestamp": "2025-11-27T08:05:00Z"
}
```
### tool_call
```json
{
"event": "tool_call",
"tool_name": "Read",
"tool_use_id": "xyz789",
"tool_details": {"file_path": "/src/main.py", "file_type": ".py"},
"sequence_position": 15,
"previous_tool": "Glob",
"timestamp": "2025-11-27T08:05:30Z"
}
```
### tool_result
```json
{
"event": "tool_result",
"tool_name": "Read",
"tool_use_id": "xyz789",
"response_length": 4500,
"estimated_tokens": 1125,
"is_error": false,
"error_type": null,
"timestamp": "2025-11-27T08:05:31Z"
}
```
### context_utilization
```json
{
"event": "context_utilization",
"estimated_session_tokens": 45000,
"context_percentage": 22.5,
"last_content_tokens": 5000,
"turn_count": 15,
"timestamp": "2025-11-27T08:10:00Z"
}
```
### context_compact
```json
{
"event": "context_compact",
"trigger": "auto",
"has_custom_instructions": false,
"session_turn_count": 45,
"estimated_tokens_before": 180000,
"timestamp": "2025-11-27T08:15:00Z"
}
```
## Files
```
.claude/
├── hooks/
│ └── enhanced-telemetry.py # Main telemetry script (v2)
├── settings.json # Hook configurations
└── skills/
└── enhanced-telemetry/
└── SKILL.md # This documentation
```
## Requirements
- Python 3.x (in PATH)
- Loki running at localhost:3100
- Claude Code hooks enabled
## Troubleshooting
### No Data in Dashboards
1. **Check hooks configured**:
```bash
cat .claude/settings.json | grep enhanced-telemetry
```
2. **Test script manually**:
```bash
echo '{"tool_name":"Test"}' | python3 .claude/hooks/enhanced-telemetry.py PreToolUse
```
3. **Check Loki receiving data**:
```bash
curl -s "http://localhost:3100/loki/api/v1/labels"
# Should include: event_type, tool, repo, pattern, etc.
```
4. **Check Loki has enhanced data**:
```bash
curl -s "http://localhost:3100/loki/api/v1/query?query={job=\"claude_code_enhanced\"}&limit=5"
```
### Hooks Not Running
- Ensure Claude Code started from project directory with `.claude/settings.json`
- Check settings.json is valid JSON: `python3 -m json.tool .claude/settings.json`
- Verify Python available: `which python3`
### Script Errors
- Check script permissions: `chmod +x .claude/hooks/enhanced-telemetry.py`
- Test with debug output: Run script manually and check stderr
## Integration with Other Skills
- **observability-analyzer**: Uses `{job="claude_code_enhanced"}` queries
- **observability-pattern-detector**: Detects patterns in enhanced data
- **observability-alert-manager**: Alerts on enhanced telemetry events
- **skill-improvement-from-observability**: Uses enhanced data for insights
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!