observability-design
Skill1 starsChanged 5 days agoMITView on GitHub
Design production observability — SLIs, SLOs, SLAs, error budgets, OpenTelemetry traces/metrics/logs, structured logging, alerting, dashboards. Triggers: SLO, SLI, SLA, error budget, observability, monitoring, OpenTelemetry, OTel, tracing, distributed tracing, structured logging, alerting, dashboard, metrics, correlation ID, alert fatigue.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- anuragsarkar97/skillstheir own version, first seen Nov 8, 2026
- l-gevity/l-gevity-skillstheir own version, first seen Nov 6, 2026
- bingyue/fde-skillstheir own version, first seen Oct 13, 2026
- hemapriyan-rk/claude-rigor-skillstheir own version, first seen Sep 26, 2026
- zhuochun/skillstheir own version, first seen Jul 21, 2026
- gclm/super-stacktheir own version, first seen Mar 29, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- l-gevity/l-gevity-skills★ 80same name
- bingyue/fde-skills★ 5same name
- hemapriyan-rk/claude-rigor-skills★ 1same name
- zhuochun/skills★ 1same name
- anuragsarkar97/skills★ 0same name
- gclm/super-stack★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository68 other files it gives its agents.
- AGENTS.mdAGENTS.md
- accessibility-designSkill
- ai-evaluationSkill
- api-designSkill
- architecture-designSkill
- architecture-documentationSkill
- brainstormingSkill
- browser-verificationSkill
- bug-investigatingSkill
- build-vs-buySkill
- cicd-pipelineSkill
- code-archaeologySkill
- code-reviewingSkill
- code-slop-cleanupSkill
- compliance-privacySkill
- configuration-strategySkill
- containerizationSkill
- data-modelingSkill
- data-pipeline-designSkill
- data-qualitySkill
- dependency-impact-analysisSkill
- dependency-managementSkill
- deployment-checklistSkill
- deployment-repoSkill
- dx-auditSkill
- effort-estimationSkill
- exploratory-data-analysisSkill
- feature-planningSkill
- finops-cost-optimizationSkill
- frontend-architectureSkill
- gitops-deliverySkill
- git-workflowSkill
- incident-responseSkill
- infrastructure-as-codeSkill
- llm-app-engineeringSkill
- metrics-and-okrsSkill
- ml-experiment-trackingSkill
- ml-model-deploymentSkill
- ml-pipeline-designSkill
- mobile-architectureSkill
- mobile-releaseSkill
- notebook-to-productionSkill
- performance-optimizationSkill
- plan-executionSkill
- prd-writingSkill
- project-documentationSkill
- project-proposalSkill
- project-reviewSkill
- refactoringSkill
- release-managementSkill
- research-methodologySkill
- resilience-engineeringSkill
- retrospectiveSkill
- rollback-strategySkill
- security-auditSkill
- skill-routerSkill
- statistical-analysisSkill
- strategic-reviewSkill
- subagent-orchestrationSkill
- tdd-workflowSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 16 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Before defining metrics, identify the 3-5 user-facing interactions that matter most:
- Distinctive: line 82
If your SLO is 99.9% availability over 30 days:
- Distinctive: line 101
Don't instrument everything — instrument what matters:
- Distinctive: line 118
Use counters for events that only go up (requests, errors, bytes sent)
- Distinctive: line 119
Use histograms for distributions (latency, request size)
- Distinctive: line 120
Use gauges for point-in-time values (queue depth, active connections)
- Distinctive: line 121
Follow OpenTelemetry semantic conventions for naming
- Distinctive: line 125
Add custom spans for business-critical operations
- Distinctive: line 127
Add attributes (user ID, order ID, feature flag) to spans for filtering
- Distinctive: line 130
Use structured JSON format, never unstructured text
- Distinctive: line 141
Every alert must link to a runbook
- Distinctive: line 142
Use severity levels: Page (wake someone up) vs Notify (review next business day)
- Distinctive: line 144
Test alerts — an untested alert is an alert that won't fire when needed
- Distinctive: line 165
KISS: Start with availability and latency SLIs.
- Distinctive: line 166
YAGNI: Don't instrument everything on day one.
- Distinctive: line 167
DRY: Use OpenTelemetry auto-instrumentation for common frameworks.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Observability Design
Design observability systems that answer "is the system healthy?" before users complain, and "why is it broken?" when they do. Good observability means you don't need to add more instrumentation to debug an issue — the signals are already there.
The Three Pillars + Reliability Framework
Observability has three signal types (metrics, logs, traces) and one decision framework (SLIs/SLOs/error budgets). This skill covers all four.
SLIs/SLOs/Error Budgets → WHAT to measure and WHEN to act
Metrics → HOW MUCH is happening (counters, gauges, histograms)
Logs → WHAT happened in detail (events, errors, context)
Traces → WHERE time was spent across services (request flow)Which workflow comes first depends on what exists. With no telemetry yet (console logs only), there is nothing to measure an SLO against, so start with the instrumentation workflow on one service: structured logs carrying the trace ID, OpenTelemetry auto-instrumentation, export through a Collector to a named backend — and show that setup in the team's own stack. Roll it out to the other services once the first one works; design SLOs when there is telemetry to measure them. When telemetry already exists, start with SLI/SLO design.
Workflow: SLI/SLO Design
Step 1: Identify Critical User Journeys
Before defining metrics, identify the 3-5 user-facing interactions that matter most:
- What does a user do when the service is "working"? (Load a page, complete a checkout, send a message)
- What would a user notice if the service degraded? (Slow responses, errors, stale data)
SLIs must reflect user experience. Internal metrics (CPU usage, queue depth) are useful for debugging but should not be SLIs — users don't care about CPU.
Step 2: Define SLIs
For each critical journey, define 1-2 SLIs. Express each SLI as a ratio:
SLI = (good events / total events) × 100%Common SLI types:
| SLI Type | Formula | Good For |
| Availability | Successful requests / Total requests | APIs, web apps |
| Latency | Requests < threshold / Total requests | User-facing endpoints |
| Quality | Correct responses / Total responses | Data pipelines, ML serving |
| Freshness | Data updated within threshold / Total checks | Caches, dashboards, feeds |
Measure SLIs at the point closest to the user — load balancer logs or client-side metrics, not server-side process metrics.
Step 3: Set SLO Targets
An SLO is the target value for an SLI over a rolling time window:
"99.9% of requests will succeed within 300ms over a 30-day rolling window"Setting the right target:
- Don't base SLOs on current performance — you'll lock yourself into an unsustainable target
- Start with user expectations — what would cause a user to complain or leave?
- Leave room for innovation — 99.99% uptime allows 4.3 minutes/month of downtime. 99.9% allows 43 minutes. That difference is engineering velocity.
- Set SLOs tighter than SLAs — your SLO should trigger action before you breach your SLA
See references/slo-framework.md for the nines table, error budget calculations, and SLO examples by service type.
Step 4: Calculate Error Budget
Error Budget = 100% - SLO targetIf your SLO is 99.9% availability over 30 days:
- Error budget = 0.1% = 43.2 minutes of downtime per month
- Each incident consumes a portion of this budget
Error budget policies define what happens when the budget runs low:
- Budget > 50% remaining: Ship features normally
- Budget 25-50%: Reduce deployment velocity, increase review rigor
- Budget < 25%: Freeze non-critical deploys, focus on reliability
- Budget exhausted: Full reliability focus until budget replenishes
Step 5: Document and Communicate
Save the SLO document using the template at templates/slo-document.md. Share with engineering, product, and on-call teams.
Workflow: OpenTelemetry Instrumentation
Step 1: Choose What to Instrument
Don't instrument everything — instrument what matters:
Always instrument:
- HTTP/gRPC request handling (latency, status codes, paths)
- Database queries (duration, query type, table)
- External API calls (duration, status, endpoint)
- Queue operations (publish, consume, processing time)
- Authentication events (success, failure, method)
Instrument when needed:
- Business-specific operations (checkout, search, upload)
- Cache operations (hit/miss ratio, latency)
- Background jobs (duration, success/failure)
Step 2: Implement the Three Signals
Metrics (aggregated measurements over time):
- Use counters for events that only go up (requests, errors, bytes sent)
- Use histograms for distributions (latency, request size)
- Use gauges for point-in-time values (queue depth, active connections)
- Follow OpenTelemetry semantic conventions for naming
Traces (request flow across services):
- Auto-instrument HTTP frameworks, database clients, and message queues
- Add custom spans for business-critical operations
- Propagate trace context across service boundaries (W3C Trace Context)
- Add attributes (user ID, order ID, feature flag) to spans for filtering
Logs (detailed event records):
- Use structured JSON format, never unstructured text
- Include trace ID and span ID in every log for correlation
- Define consistent log levels (see references/logging-patterns.md)
- Redact sensitive data (passwords, tokens, PII) before logging
Step 3: Set Up Alerting
Alerts should be actionable. Every alert should answer: "What happened? Is it urgent? What should I do?"
Alert design rules:
- Alert on SLO burn rate, not raw metric thresholds — this catches meaningful degradation while ignoring noise
- Every alert must link to a runbook
- Use severity levels: Page (wake someone up) vs Notify (review next business day)
- Set up multi-window burn rate alerts (fast burn = 1h window, slow burn = 6h window)
- Test alerts — an untested alert is an alert that won't fire when needed
See references/logging-patterns.md for alerting patterns.
Step 4: Design Dashboards
Dashboards should answer "is the system healthy?" in 5 seconds:
Service overview dashboard:
- SLO status and error budget remaining (the single most important panel)
- Request rate, error rate, and latency percentiles (P50, P95, P99)
- Active alerts
Debug dashboard (per service):
- Latency breakdown by dependency (database, cache, external APIs)
- Error rate by error type/code
- Resource utilization (CPU, memory, connections)
- Recent deployments overlaid on metrics
Principles Applied
- KISS: Start with availability and latency SLIs. Add quality and freshness only when needed.
- YAGNI: Don't instrument everything on day one. Instrument the critical paths, add more when debugging reveals gaps.
- DRY: Use OpenTelemetry auto-instrumentation for common frameworks. Only add manual instrumentation for business-specific operations.
- Functional Independence: Each service owns its SLOs. Don't create SLOs that depend on another team's service — those become SLAs between teams.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

