Skip to content
Back to skills

Principle Observability

ASecurity

Observability principles — logs vs metrics vs traces, structured logging, distributed tracing, span/trace context, cardinality control, OpenTelemetry, SLI/SLO/SLA, RED method, USE method, alerting on symptoms vs causes. Auto-load when adding logging, choosing a metric, instrumenting distributed tracing, debating cardinality, defining SLIs/SLOs, designing alerts, or discussing observability budgets.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
developmentreactrailsdebuggingapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add lugassawan/swe-workbench --skill principle-observability --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Principle Observability?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Principle Observability
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lugassawan-principle-observability/badge)](https://www.skillsdirectory.com/skills/lugassawan-principle-observability)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: principle-observability
description: Observability principles — logs vs metrics vs traces, structured logging, distributed tracing, span/trace context, cardinality control, OpenTelemetry, SLI/SLO/SLA, RED method, USE method, alerting on symptoms vs causes. Auto-load when adding logging, choosing a metric, instrumenting distributed tracing, debating cardinality, defining SLIs/SLOs, designing alerts, or discussing observability budgets.
---

# Observability

Three signals, each with a distinct job. Use the right one for the right question.

## The Three Pillars

**Logs** — discrete events with context. Right for: debugging specific incidents, audit trails, free-text search.
- Emit at decision points and error boundaries, not in loops.
- Use structured key-value format; never interpolate variables into free-form strings.
- Include a correlation ID on every line — trace parent ID if a trace exists.

**Metrics** — numeric aggregations over time. Right for: dashboards, SLOs, alerting thresholds.
- Pre-aggregate; do not stream raw events into a metrics backend.
- Label only stable, low-cardinality dimensions (region, status_code, service) — never user ID, request ID, or email.

**Traces** — causal chain of operations across services. Right for: latency attribution, dependency mapping.
- A span represents one unit of work; parent/child links form the trace.
- Propagate context headers at every service boundary — OpenTelemetry W3C trace context.
- Put high-cardinality attributes (user ID, document ID) in span attributes, not metric labels.

## Structured Logging

Emit events as key-value pairs. The log processor should never parse a free-form string.
- Correlation ID ties log lines to a trace and to a business operation.
- Log level discipline: DEBUG (local dev), INFO (normal flow), WARN (recoverable anomaly), ERROR (action required).
- No `log.debug("entering function X")` in hot paths — cost without signal.

## Cardinality

High-cardinality labels explode time-series count and kill metrics backends.
- **Safe:** `status_code`, `method`, `region`, `environment` — bounded sets.
- **Unsafe:** `user_id`, `request_id`, `session_token` — unbounded.
- Move high-cardinality context to span attributes or structured log fields.
- Rule of thumb: if a label's value count exceeds 1 000, it does not belong in a metric.

## SLI / SLO / Error Budget

Define SLIs around user-visible behavior, not internal mechanics.
- **SLI** — the measurement: request success rate, p99 latency, data freshness.
- **SLO** — the target: 99.9% success rate over a rolling 28-day window.
- **Error budget** — 1 − SLO; spend it on risk, protect it by slowing releases.
- Track error budgets as a team policy, not as an on-call metric.
- Never use CPU utilization or memory as SLIs — users do not feel CPU.

## RED Method (request-driven services)

Three questions for every service:
- **Rate** — how many requests per second?
- **Errors** — what fraction are failing?
- **Duration** — how long are they taking? (histogram, not average)

## USE Method (resource-driven services)

Three questions per resource (CPU, memory, disk, network):
- **Utilization** — how busy is the resource?
- **Saturation** — how much demand is queued?
- **Errors** — is the resource reporting errors?

## Alert on Symptoms, Not Causes

Page humans for user-visible pain. Let dashboards explain why.
- **Page-worthy:** error rate exceeds SLO budget burn rate; p99 latency exceeds user threshold.
- **Not page-worthy:** CPU > 80%, heap > 70% — correlate these in post-mortems.
- Symptom alerts reduce alert fatigue; cause alerts create it.

## When Observability is Overkill

- Internal scripts, batch jobs, one-off migrations — structured logs suffice.
- Single-process services owned by one developer — standard library logging, no tracing.
- Prototypes: instrument later; premature instrumentation shapes API decisions before the design is stable.

## Red Flags

| Flag | Problem |
|------|---------|
| Alerts fire on CPU or memory thresholds | Cause alert — pages without confirmed user impact |
| `log.debug("value: " + obj.toString())` | String interpolation breaks log parsing; expensive in hot paths |
| Metric labels include user ID or request ID | High-cardinality explosion; will saturate the metrics backend |
| Dashboard added for every new feature | Dashboards-as-product; nobody reads them; builds false confidence |
| On-call only reacts when paged | No error-budget tracking; SLO erosion invisible until breach |

Files in this skill

  • SKILL.md4.5 KB
  • triggers.txt499 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.