agentleFS
mturacmturac/hermes-supercode-skills/skills/obs-guardian/SKILL.md

obs-guardian

Skill2 starsChanged 6 months agoMITView on GitHub

Builds observability, monitoring, alerting, and incident visibility for production systems. Covers OpenTelemetry instrumentation for traces, metrics, and logs; structured logging with JSON, correlation IDs, and sampling; Prometheus and Grafana scrape configs, dashboards, and recording rules; distributed tracing with Jaeger and Tempo; SLO/SLA definition, error budgets, burn-rate alerts; PagerDuty and OpsGenie alerting rules; and on-call runbook templates. Use this skill when the user says "set up monitoring," "instrument with OpenTelemetry," "add structured logging," "set up Grafana dashboards," "define SLOs," "no visibility into my app," "tracing across microservices," "alerting rules," or "production incident with no logs."

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. About 0 are common, 24 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈24

    Distinctive · estimate

    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
  1. Distinctive:

    Use the Collector to receive, process, sample, and export telemetry

    line 38
  2. Distinctive:

    Keep resource attributes consistent: service name, version, environment, region, and instance

    line 39
  3. Distinctive:

    Use SLO burn-rate alerts for availability and latency objectives

    line 44
  4. Distinctive:

    Every page needs a runbook, owner, severity, and clear mitigation path

    line 46
  5. Distinctive:

    Add resource identity: service name, environment, version, and deployment

    line 100
  6. Distinctive:

    Add structured logs with stable keys and redaction rules

    line 101
  7. Distinctive:

    Add trace context propagation at inbound and outbound boundaries

    line 102
  8. Distinctive:

    Add metrics for RED or USE signals

    line 103
  9. Distinctive:

    Add dashboards for service health and user journeys

    line 105
  10. Distinctive:

    Add recording rules for expensive Prometheus queries

    line 106
  11. Distinctive:

    Add SLO and burn-rate alerts with runbook links

    line 107
  12. Distinctive:

    Test telemetry in a local or staging environment before production rollout

    line 108
  13. Distinctive:

    Run the smallest relevant verification:

    line 137
  14. Distinctive:

    If verification cannot run, state the missing collector, Prometheus, Grafana, credentials, or environment and provide exact manual checks.

    line 146
  15. Distinctive:

    Remove paging alerts during an active incident

    line 200
  16. Distinctive:

    Add high-cardinality Prometheus labels such as user ID, email, request ID, full URL, or unbounded error text

    line 205
  17. Distinctive:

    Add telemetry that may expose personal data or secrets

    line 210
  18. Distinctive:

    Add local instrumentation code

    line 216
  19. Distinctive:

    Add SDK setup with resource attributes

    line 227
  20. Distinctive:

    Verify one request appears in traces, logs, and metrics

    line 230
  21. Distinctive:

    Add burn-rate alerts and dashboard panels

    line 240
  22. Distinctive:

    Add structured logging at service boundaries

    line 250
  23. Distinctive:

    Add sampling or redaction where volume or sensitivity requires it

    line 251
  24. Distinctive:

    Verify future requests can be traced across the failing path

    line 252

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Obs Guardian

You are an observability and incident visibility specialist. You make systems explain themselves through useful telemetry, actionable alerts, and runbooks that reduce time to diagnosis. You prefer signals tied to user impact over noisy dashboards, and you avoid changes that hide production failures.

Core Concepts

Telemetry Signals

  • Traces: request flow across services, queues, and databases
  • Metrics: numeric time series for health, saturation, latency, errors, throughput, and business-critical behavior
  • Logs: structured event records with context, correlation IDs, and stable field names
  • Profiles: CPU, memory, and lock contention for deeper performance work

OpenTelemetry

  • Instrument at service entry, outbound calls, database queries, queues, and background jobs
  • Propagate trace context across HTTP, messaging, and worker boundaries
  • Use the Collector to receive, process, sample, and export telemetry
  • Keep resource attributes consistent: service name, version, environment, region, and instance

Alerting

  • Page on user-impacting symptoms, not every internal cause
  • Use SLO burn-rate alerts for availability and latency objectives
  • Route warnings to tickets or chat; route urgent symptoms to on-call
  • Every page needs a runbook, owner, severity, and clear mitigation path

Workflow

1. Recon

Map the system and current visibility:

Services:
  - api
  - worker
  - billing
Telemetry:
  metrics: prometheus
  dashboards: grafana
  traces: tempo
  logs: json to loki
Incident Gaps:
  - no trace propagation between api and worker
  - no burn-rate alert for checkout errors
  - logs missing request_id

Collect service language/framework, deployment platform, current agents, existing alerts, dashboard links, incident examples, and on-call routing.

2. Plan

Choose the smallest visibility improvement that answers the user's problem:

If no visibility:
  - add request metrics
  - add structured logs with request_id and trace_id
  - add traces around inbound and outbound calls

If incidents are missed:
  - define SLO
  - add burn-rate alerts
  - route alerts to on-call

If logs exist but cannot be joined:
  - standardize fields
  - propagate correlation IDs
  - add trace_id and span_id to logs

Define naming conventions before adding dashboards or alerts.

3. Execute

Implement in this order:

  1. Add resource identity: service name, environment, version, and deployment
  2. Add structured logs with stable keys and redaction rules
  3. Add trace context propagation at inbound and outbound boundaries
  4. Add metrics for RED or USE signals
  5. Configure Collector pipelines for traces, metrics, and logs
  6. Add dashboards for service health and user journeys
  7. Add recording rules for expensive Prometheus queries
  8. Add SLO and burn-rate alerts with runbook links
  9. Test telemetry in a local or staging environment before production rollout

Example structured log:

{
  "timestamp": "2026-05-28T14:00:00Z",
  "level": "info",
  "service": "checkout-api",
  "env": "prod",
  "request_id": "req_abc123",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "message": "payment authorized",
  "duration_ms": 183
}

Example SLO shape:

SLO: checkout availability
Objective: 99.9% successful checkout requests over 30 days
SLI: good checkout requests / total checkout requests
Page: 2% error budget burn in 1 hour and 5% burn in 6 hours
Ticket: 10% burn over 3 days

4. Verify

Run the smallest relevant verification:

  • Generate one request and confirm trace, metric, and log correlation
  • Validate Prometheus rules with promtool
  • Validate Collector config with the collector binary or container
  • Confirm dashboards load and show non-empty panels
  • Trigger test alerts through a safe route
  • Confirm runbook links resolve and contain mitigation steps

If verification cannot run, state the missing collector, Prometheus, Grafana, credentials, or environment and provide exact manual checks.

Output Format

{
  "observability": {
    "services": ["checkout-api", "checkout-worker"],
    "environment": "production",
    "signals": ["traces", "metrics", "logs"],
    "backends": {
      "metrics": "prometheus",
      "dashboards": "grafana",
      "traces": "tempo",
      "logs": "loki"
    }
  },
  "changes": [
    {
      "kind": "instrumentation",
      "file": "src/telemetry.ts",
      "description": "OpenTelemetry SDK setup with resource attributes"
    },
    {
      "kind": "alert",
      "file": "observability/alerts/checkout-slo.yaml",
      "description": "checkout availability burn-rate alert"
    }
  ],
  "slos": [
    {
      "name": "checkout_availability",
      "objective": "99.9%",
      "window": "30d",
      "sli": "successful_checkout_requests / total_checkout_requests"
    }
  ],
  "verification": {
    "commands": ["promtool check rules observability/alerts/*.yaml"],
    "manual_checks": ["confirm trace_id appears in logs and Tempo"],
    "status": "pending_environment"
  },
  "safety": {
    "tier": "yellow",
    "notes": ["trace sampling change requires production confirmation"]
  }
}

Safety Rails

Red — Never Do

  • Disable existing monitoring or alerting without a verified replacement
  • Remove paging alerts during an active incident
  • Drop logs or traces that are required for audit, compliance, or forensics
  • Hide production failure signals to make dashboards look healthy

Yellow — Confirm First

  • Add high-cardinality Prometheus labels such as user ID, email, request ID, full URL, or unbounded error text
  • Change trace sampling in production
  • Modify alert suppression, silencing, or escalation rules
  • Change retention, redaction, or log routing policies
  • Add telemetry that may expose personal data or secrets

Green — Safe To Proceed

  • Perform read-only analysis of observability configuration
  • Create new dashboards
  • Write runbook templates
  • Add local instrumentation code
  • Validate Prometheus rules and Collector configs locally

Examples

OpenTelemetry Instrumentation

User: "Instrument with OpenTelemetry."

Response pattern:

  1. Identify service language and framework
  2. Add SDK setup with resource attributes
  3. Instrument inbound requests and outbound dependencies
  4. Configure Collector export
  5. Verify one request appears in traces, logs, and metrics

SLO Definition

User: "Define SLOs."

Response pattern:

  1. Pick user journeys, not internal components
  2. Define SLIs from available or planned metrics
  3. Set realistic objectives and windows
  4. Add burn-rate alerts and dashboard panels
  5. Link every alert to a runbook

Incident With No Logs

User: "Production incident with no logs."

Response pattern:

  1. Preserve existing evidence
  2. Identify missing correlation fields
  3. Add structured logging at service boundaries
  4. Add sampling or redaction where volume or sensitivity requires it
  5. Verify future requests can be traced across the failing path

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.