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.md
source content

Database Observability

Database is often the bottleneck. Track queries, pools, and patterns.

Query Span Attributes

AttributeExampleRequired
db.system
postgresql, mysqlYes
db.operation
SELECT, INSERTYes
db.name
orders_dbYes
db.sql.table
usersRecommended
db.statement
SELECT * FROM users WHERE id = ?Parameterized only!

Connection Pool Metrics (USE)

MetricTypeDescription
db.connections.active
GaugeIn use
db.connections.idle
GaugeAvailable
db.connections.max
GaugePool limit
db.connections.wait_count
CounterHad to wait
db.connections.wait_duration
HistogramWait time

Issues to Detect

IssueDetectionFix
N+1 queries>10 identical queries per requestUse eager loading
Slow queriesDuration > p95 thresholdAdd indexes, optimize
Pool exhaustionwait_count increasingIncrease 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