Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Structured logging, metrics, distributed tracing, and alerting strategies
.claude/skills/aiskillstore-observability-monitoring/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -48% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 59% | 0% |
Comprehensive frameworks for implementing observability including structured logging, metrics, distributed tracing, and alerting.
┌─────────────────┬─────────────────┬─────────────────┐
│ LOGS │ METRICS │ TRACES │
├─────────────────┼─────────────────┼─────────────────┤
│ What happened │ How is system │ How do requests │
│ at specific │ performing │ flow through │
│ point in time │ over time │ services │
└─────────────────┴─────────────────┴─────────────────┘| Level | Use Case | |-------|----------| | ERROR | Unhandled exceptions, failed operations | | WARN | Deprecated API, retry attempts | | INFO | Business events, successful operations | | DEBUG | Development troubleshooting |
typescript// Good: Structured with context logger.info('User action completed', { action: 'purchase', userId: user.id, orderId: order.id, duration_ms: 150 }); // Bad: String interpolation logger.info(`User ${user.id} completed purchase`);
> See templates/structured-logging.ts for Winston setup and request middleware
Essential metrics for any service:
typescript// HTTP request latency buckets: [0.01, 0.05, 0.1, 0.5, 1, 2, 5] // Database query latency buckets: [0.001, 0.01, 0.05, 0.1, 0.5, 1]
> See templates/prometheus-metrics.ts for full metrics configuration
Auto-instrument common libraries:
typescripttracer.startActiveSpan('processOrder', async (span) => { span.setAttribute('order.id', orderId); // ... work span.end(); });
> See templates/opentelemetry-tracing.ts for full setup
| Level | Response Time | Examples | |-------|---------------|----------| | Critical (P1) | < 15 min | Service down, data loss | | High (P2) | < 1 hour | Major feature broken | | Medium (P3) | < 4 hours | Increased error rate | | Low (P4) | Next day | Warnings |
| Alert | Condition | Severity | |-------|-----------|----------| | ServiceDown | up == 0 for 1m | Critical | | HighErrorRate | 5xx > 5% for 5m | Critical | | HighLatency | p95 > 2s for 5m | High | | LowCacheHitRate | < 70% for 10m | Medium |
> See templates/alerting-rules.yml for Prometheus alerting rules
| Probe | Purpose | Endpoint | |-------|---------|----------| | Liveness | Is app running? | /health | | Readiness | Ready for traffic? | /ready | | Startup | Finished starting? | /startup |
json{ "status": "healthy|degraded|unhealthy", "checks": { "database": { "status": "pass", "latency_ms": 5 }, "redis": { "status": "pass", "latency_ms": 2 } }, "version": "1.0.0", "uptime": 3600 }
> See templates/health-checks.ts for implementation
Use Opus 4.5 extended thinking for:
| Template | Purpose | |----------|---------| | structured-logging.ts | Winston logger with request middleware | | prometheus-metrics.ts | HTTP, DB, cache metrics with middleware | | opentelemetry-tracing.ts | Distributed tracing setup | | alerting-rules.yml | Prometheus alerting rules | | health-checks.ts | Liveness, readiness, startup probes |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→pass | 20,381 | 19,247 | -6% | 1 | 1 | 0% | 2,194 | 3,491 | +59% | 0 | 0 | — |
case-13 | pass→pass | 13,964 | 7,627 | -45% | 1 | 1 | 0% | 1,456 | 1,650 | +13% | 0 | 0 | — |
case-01 | fail→fail | 20,830 | 29,097 | +40% | 1 | 1 | 0% | 4,215 | 6,064 | +44% | 0 | 0 | — |
case-02 | fail→fail | 31,225 | 24,405 | -22% | 1 | 1 | 0% | 4,855 | 6,211 | +28% | 0 | 0 | — |
case-03 | fail→fail | 13,777 | 12,349 | -10% | 1 | 1 | 0% | 1,387 | 2,530 | +82% | 0 | 0 | — |
case-14 | fail→pass | 5,894 | 9,066 | +54% | 1 | 1 | 0% | 1,115 | 1,899 | +70% | 0 | 0 | — |
case-05 | pass→pass | 16,840 | 13,560 | -19% | 1 | 1 | 0% | 1,739 | 2,537 | +46% | 0 | 0 | — |
case-06 | pass→pass | 10,197 | 11,190 | +10% | 1 | 1 | 0% | 1,651 | 3,168 | +92% | 0 | 0 | — |
case-07 | pass→pass | 3,369 | 8,946 | +166% | 1 | 1 | 0% | 507 | 1,897 | +274% | 0 | 0 | — |
case-08 | fail→pass | 23,904 | 3,306 | -86% | 1 | 1 | 0% | 3,501 | 1,827 | -48% | 0 | 0 | — |
case-15 | fail→pass | 14,357 | 15,238 | +6% | 1 | 1 | 0% | 2,616 | 3,069 | +17% | 0 | 0 | — |
case-09 | fail→fail | 10,373 | 16,305 | +57% | 1 | 1 | 0% | 2,291 | 3,540 | +55% | 0 | 0 | — |
case-10 | pass→pass | 16,131 | 21,455 | +33% | 1 | 1 | 0% | 2,885 | 4,445 | +54% | 0 | 0 | — |
case-11 | pass→pass | 14,364 | 10,530 | -27% | 1 | 1 | 0% | 1,698 | 2,487 | +46% | 0 | 0 | — |
case-12 | pass→pass | 17,143 | 3,881 | -77% | 1 | 1 | 0% | 1,902 | 1,940 | +2% | 0 | 0 | — |
case-16 | fail→pass | 13,831 | 12,845 | -7% | 1 | 1 | 0% | 2,420 | 2,599 | +7% | 0 | 0 | — |
case-17 | pass→pass | 11,784 | 7,373 | -37% | 1 | 1 | 0% | 2,312 | 1,671 | -28% | 0 | 0 | — |
case-18 | pass→pass | 11,789 | 16,931 | +44% | 1 | 1 | 0% | 2,102 | 3,201 | +52% | 0 | 0 | — |
case-19 | pass→pass | 14,904 | 12,057 | -19% | 1 | 1 | 0% | 1,550 | 2,344 | +51% | 0 | 0 | — |
case-20 | pass→pass | 15,463 | 19,347 | +25% | 1 | 1 | 0% | 2,030 | 3,414 | +68% | 0 | 0 | — |
case-21 | pass→pass | 15,022 | 9,626 | -36% | 1 | 1 | 0% | 1,815 | 2,973 | +64% | 0 | 0 | — |
case-22 | pass→pass | 13,385 | 16,560 | +24% | 1 | 1 | 0% | 2,802 | 4,263 | +52% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.