Instrument database queries, connection pools, and detect N+1 queries
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: database-observability
description: "Instrument database queries, connection pools, and detect N+1 queries"
triggers:
- "instrument database"
- "trace queries"
- "database metrics"
- "connection pool monitoring"
- "slow query detection"
priority: 2
---
# Database Observability
Database is often the bottleneck. Track queries, pools, and patterns.
## Query Span Attributes
| Attribute | Example | Required |
|-----------|---------|----------|
| `db.system` | postgresql, mysql | Yes |
| `db.operation` | SELECT, INSERT | Yes |
| `db.name` | orders_db | Yes |
| `db.sql.table` | users | Recommended |
| `db.statement` | SELECT * FROM users WHERE id = ? | **Parameterized only!** |
## Connection Pool Metrics (USE)
| Metric | Type | Description |
|--------|------|-------------|
| `db.connections.active` | Gauge | In use |
| `db.connections.idle` | Gauge | Available |
| `db.connections.max` | Gauge | Pool limit |
| `db.connections.wait_count` | Counter | Had to wait |
| `db.connections.wait_duration` | 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.md`
- `references/platforms/{platform}/database.md`
No comments yet. Be the first to comment!