This Claude skill provides comprehensive database observability by instrumenting SQL queries, monitoring connection pool health, and automatically detecting performance bottlenecks like N+1 queries. It empowers developers and SREs to optimize database interactions, ensure resource availability, and maintain high-performance application backends through standardized tracing and the USE methodology.
Use Cases
Performance Optimization: Identifying and fixing N+1 query patterns by detecting redundant database calls within a single request.
Resource Management: Monitoring connection pool metrics such as active/idle connections and wait durations to prevent application downtime due to pool exhaustion.
Slow Query Detection: Tracing query execution times and attributes to pinpoint slow SQL statements that require indexing or refactoring.
Security & Compliance: Implementing secure database tracing patterns that use parameterized statements to prevent PII leaks in observability logs.
name
database-observability
description
"Instrument database queries, connection pools, and detect N+1 queries"
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