observability-setup
Skill22 starsChanged 3 months agoMITView on GitHub
Instruments applications with structured logging, metrics, and distributed traces, then derives SLIs, SLOs, error budgets, and alerts that page only on user-facing pain. Use this skill when the user asks to "add observability", "instrument my app", "set up OpenTelemetry/OTel", "add structured logging", "expose Prometheus metrics", "add tracing", "define SLOs/SLIs", "set up alerting", "reduce alert noise", "build a Grafana dashboard", or wants the three pillars (logs/metrics/traces) wired into a service.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- Ionate-Technologies/indium-agentkittheir own version, first seen Oct 20, 2026
- JayRHa/agent-skillsword for word, first seen Oct 15, 2026
- Indium-AI-Labs/indium-agentkittheir own version, first seen Oct 11, 2026
- devpilotX/skillstheir own version, first seen Sep 22, 2026
- navikt/copilottheir own version, first seen Sep 14, 2026
- njt2810/claude-code-frameworktheir own version, first seen Sep 10, 2026
Used with
Projects with it also use compliance-audit, accessibility-audit and 2 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
arndvsSkillcompliance-audit
Auto-invoke after any do-work, tdd, systematic-debugging, or review-pr-copilot task completes to review the diff against active rules and skills, flag violations, update the skill if a gap is found, and close the loop between 'rule was loaded' and 'rule was followed'.
Also in 3 projects that use this
GitHubSkillaccessibility-audit
Audits actual components and routes against applicable WCAG 2.2 A/AA criteria using consumer-owned design-system evidence and repository tools. Use when asked for an accessibility audit, a11y check, keyboard or focus review, contrast check, or screen-reader verification.
Also in 3 projects that use this
MicrosoftSkillapi-design
Guide for designing and documenting RESTful APIs. Use when asked to design an API, create endpoints, or document an API.
Also in 4 projects that use this
SentrySkillsecurity-review
Finds exploitable application security vulnerabilities in code changes. Use for Warden security scans, appsec review, OWASP-style checks, authentication or authorization bugs, injection, XSS, SSRF, path traversal, secrets, unsafe crypto, webhook verification, open redirects, or sensitive data exposure.
Also in 4 projects that use this
Other versions11 projects use a version of this.
Word for word · 2
- JayRHa/agent-skills★ 12100% same
- JayRHa/AgentSkills★ 12100% same
Edited · 0
None found.
Wrote their own version · 9
- proflead/codex-skills-library★ 153same name
- navikt/copilot★ 61same name
- Indium-AI-Labs/indium-agentkit★ 18same name
- Ionate-Technologies/indium-agentkit★ 17same name
- navikt/hovmester★ 2same name
- jpoindexter/theft-kit★ 1same name
- njt2810/claude-code-framework★ 1same name
- Bufferoverflovv/FastMCP-Blueprint★ 0same name
- devpilotX/skills★ 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 repository194 other files it gives its agents.
- 0-templateSkill
- ab-test-analyzerSkill
- academy-guideSkill
- add-to-my-skillsSkill
- adr-authorSkill
- ai-tools-setupSkill
- algorithmic-artSkill
- api-and-interface-designSkill
- api-designerSkill
- api-docs-writerSkill
- apple-store-submitSkill
- aws-cost-optimizerSkill
- bash-script-hardeningSkill
- blog-post-writerSkill
- book-summarizerSkill
- branch-cleanupSkill
- brand-copy-landingSkill
- brand-copySkill
- brand-designSkill
- brand-guidelinesSkill
- browser-testing-with-devtoolsSkill
- canvas-designSkill
- changelog-generatorSkill
- changelog-keeperSkill
- chart-chooserSkill
- ci-cd-and-automationSkill
- ci-fix-loopSkill
- claude-apiSkill
- cloudflare-block-countriesSkill
- coderabbitloopSkill
- code-review-and-qualitySkill
- code-reviewerSkill
- code-simplificationSkill
- codexloopSkill
- comms-notionSkill
- comms-slackSkill
- comms-whatsappSkill
- competitive-analysisSkill
- concept-explainerSkill
- constraint-driven-developmentSkill
- context-engineeringSkill
- context-repoSkill
- cover-letter-writerSkill
- crash-courseSkill
- cron-schedulerSkill
- data-digestSkill
- data-pipeline-architectSkill
- debug-detectiveSkill
- debugging-and-error-recoverySkill
- decision-matrixSkill
- dependabot-triageSkill
- dependency-upgraderSkill
- deprecation-and-migrationSkill
- dev-instantdbSkill
- discernment-nudgeSkill
- doc-coauthoringSkill
- dockerfile-proSkill
- docs-index-keeperSkill
- documentation-and-adrsSkill
- docxSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 1 is distinctive, and 4 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Wire the OTel Collector: Run a collector (agent + gateway) to receive OTLP, batch, sample, and export.
- Very specific: line 26
Validate and reduce noise: Run scripts/check_slo_burn.py against live metrics to sanity-check.
- Distinctive: line 45
Do not SLO on CPU, memory, or queue depth — those are causes, not symptoms.
- Very specific: line 62
Semantic conventions: Use OTel semantic attribute names (http.request.method, http.response.status_code, service.name, db.system) so …
- Very specific: line 63
Tame cardinality: Never put unbounded values (user IDs, request IDs, full URLs, emails) in metric labels — they explode time-series count …
“Common” is measured: kept by at least 6 in 10 of the 7 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 Setup
Overview
Observability is the ability to ask arbitrary questions about a system's behavior from the outside, using its telemetry. This skill instruments a service across the three pillars — structured logs, metrics, and distributed traces — then turns raw signals into SLIs, SLOs, error budgets, and actionable alerts. The goal is not "more dashboards" but the ability to answer "is the user in pain, and where?" in under five minutes.
Keywords: observability, OpenTelemetry, OTel, structured logging, JSON logs, Prometheus, metrics, RED method, USE method, distributed tracing, spans, trace context, correlation ID, SLI, SLO, error budget, burn rate, alerting, Alertmanager, Grafana, on-call, golden signals, cardinality, exemplars.
Standardize on OpenTelemetry (OTel) for instrumentation — it is vendor-neutral and emits to Prometheus, Tempo, Loki, Datadog, Honeycomb, etc. Keep instrumentation code free of vendor SDKs; push vendor choice to the OTel Collector.
Workflow
- Inventory the service. Identify language/runtime, request entry points (HTTP/gRPC/queue), critical user journeys, downstream dependencies, and the existing telemetry backend (or pick one). Read
references/instrumentation-patterns.mdfor per-pillar guidance. - Add structured logging first. Emit one JSON event per request with a stable schema (timestamp, level, message,
trace_id,span_id, service, plus event-specific fields). Never log secrets/PII. Logs become useful only once they are queryable and correlated to traces. - Instrument metrics using RED + USE. For request-driven services apply RED (Rate, Errors, Duration); for resources apply USE (Utilization, Saturation, Errors). Use the four golden signals (latency, traffic, errors, saturation) as the checklist. Watch label cardinality.
- Add distributed tracing. Auto-instrument the framework, propagate W3C
traceparentacross service boundaries, and add manual spans around meaningful business operations. Attachtrace_idto every log line and metric exemplar so you can pivot signal → signal. - Wire the OTel Collector. Run a collector (agent + gateway) to receive OTLP, batch, sample, and export. This decouples app code from backends and centralizes sampling/redaction. See
references/instrumentation-patterns.md. - Define SLIs and SLOs. Pick 1–3 SLIs per user journey (availability, latency, correctness). Set realistic SLO targets and a measurement window. Use
references/slo-cookbook.mdand the template intemplates/slo-spec.md. - Compute error budgets and burn-rate alerts. Alert on budget burn rate, not on raw thresholds. Use multi-window multi-burn-rate alerts to balance fast detection against false pages. Generate rules with
scripts/gen_slo_alerts.py. - Validate and reduce noise. Run
scripts/check_slo_burn.pyagainst live metrics to sanity-check. Ensure every alert is actionable, links to a runbook, and pages a human only when users are affected. Everything else is a ticket or a dashboard.
Decision Framework
Which pillar answers which question?
| Question | Pillar |
| "How many users are affected, how bad, since when?" | Metrics (aggregate, cheap, alertable) |
| "Why is this specific request slow / failing?" | Traces (per-request causal path) |
| "What exactly happened in this code path?" | Logs (high-detail, high-cost, sampled) |
Rule of thumb: alert on metrics, diagnose with traces, confirm with logs. All three must share trace_id.
What to make an SLI?
Pick SLIs that track what a user actually experiences at the service boundary, expressed as good events / valid events:
- Availability:
non-5xx responses / total responses - Latency:
requests faster than threshold / total requests(threshold-based, NOT an average) - Correctness/freshness: domain-specific (e.g.,
jobs completed within SLA / total jobs)
Do not SLO on CPU, memory, or queue depth — those are causes, not symptoms. They belong on USE dashboards.
Alert severity routing
| Burn rate / condition | Window | Action |
| Fast burn (≈14.4x, ~2% budget in 1h) | 1h + 5m | Page on-call |
| Slow burn (≈3x, ~5% budget in 6h) | 6h + 30m | Page (lower urgency) or ticket |
| Trend / saturation approaching limit | 1–3d | Ticket / dashboard |
| Informational | — | Dashboard only, never paged |
Worked Example
See examples/instrument-flask-service.md for an end-to-end pass over a Python web service: JSON logging with trace correlation, OTel auto + manual spans, RED metrics, an availability + latency SLO, and the generated burn-rate alerts.
Best Practices
- One log schema, enforced. Centralize a logger that always emits JSON with required fields. Inject
trace_id/span_idautomatically so humans never set them by hand. - Semantic conventions. Use OTel semantic attribute names (
http.request.method,http.response.status_code,service.name,db.system) so backends and dashboards work out of the box. - Tame cardinality. Never put unbounded values (user IDs, request IDs, full URLs, emails) in metric labels — they explode time-series count and cost. Put them in logs/trace attributes instead. Use route templates (
/users/{id}), not raw paths. - Sample traces intelligently. Head-sample low-value traffic; tail-sample to keep all errors and slow requests. Always keep 100% of error traces.
- SLOs over SLAs internally. Set internal SLOs stricter than any contractual SLA so you get warning before breaching customer commitments.
- Error budget drives prioritization. Budget remaining → ship features. Budget exhausted → freeze risky changes and burn down reliability work.
- Every alert has a runbook link. An alert with no documented response is noise. Include the dashboard URL, likely causes, and first diagnostic step.
- Symptom-based alerts, cause-based dashboards. Page on user pain (the SLO); use cause metrics (CPU, GC, pool saturation) to diagnose after the page fires.
- RED for services, USE for resources. Apply both checklists deliberately rather than dashboarding whatever the library exposes.
Common Pitfalls
- Logging averages and alerting on them. Averages hide tail latency. Use histograms and percentiles (p95/p99), and SLI as a ratio of requests under threshold.
- Alert per host / per pod. A 50-node fleet generates 50 pages for one bad deploy. Alert on the aggregate user-facing SLI.
- Threshold alerts with no budget context.
error_rate > 1%pages constantly during normal blips. Burn-rate alerts only fire when the budget is genuinely at risk. - Unbounded label cardinality.
http_requests_total{user_id="..."}will OOM Prometheus. Keep label sets small and bounded. - Traces without propagation. Forgetting to forward
traceparentheaders breaks the trace at every service hop, leaving disconnected single-service spans. - Logging secrets/PII. Tokens, passwords, full card numbers, and personal data in logs are a security incident. Redact at the logger and again at the collector.
- Instrumenting everything, prioritizing nothing. 200 metrics nobody looks at is not observability. Start from user journeys and the golden signals.
- No
valid eventsdenominator. An SLI of "errors" without "total valid events" can't compute a meaningful budget. Always define both numerator and denominator, and what counts as valid.
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.

