Claude-skill-registry database-observability
Instrument database queries, connection pools, and detect N+1 queries
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/database-observability" ~/.claude/skills/majiayu000-claude-skill-registry-database-observability && rm -rf "$T"
manifest:
skills/data/database-observability/SKILL.mdsource content
Database Observability
Database is often the bottleneck. Track queries, pools, and patterns.
Query Span Attributes
| Attribute | Example | Required |
|---|---|---|
| postgresql, mysql | Yes |
| SELECT, INSERT | Yes |
| orders_db | Yes |
| users | Recommended |
| SELECT * FROM users WHERE id = ? | Parameterized only! |
Connection Pool Metrics (USE)
| Metric | Type | Description |
|---|---|---|
| Gauge | In use |
| Gauge | Available |
| Gauge | Pool limit |
| Counter | Had to wait |
| Histogram | Wait time |
Issues to Detect
| Issue | Detection | Fix |
|---|---|---|
| N+1 queries | >10 identical queries per request | Use eager loading |
| Slow queries | Duration > p95 threshold | Add indexes, optimize |
| Pool exhaustion | wait_count increasing | Increase pool, fix leaks |
Query Wrapper Pattern
Before: Start span (db.system, db.operation, db.sql.table), start timer After: Record duration, set db.rows_affected, record errors, end span
Pool Monitor Pattern
Every 10s: Record active, idle, wait_count, wait_duration from pool stats
Anti-Patterns
- Full SQL with values → PII risk, use parameterized only
- No pool metrics → Can't detect saturation
- Missing slow query alerts → Problems go unnoticed
References
references/methodology/use-methodology.mdreferences/platforms/{platform}/database.md