Skip to content

Что такое Observability

Коротко:

Observability — способность понять internal state системы из её external outputs. Three pillars: **metrics** (numbers over time — CPU, QPS), **logs** (events — errors, audit trail), **traces** (request path через distributed services). Отличие от monitoring: monitoring = знание known unknowns (CPU high). Observability = exploring unknown unknowns (новая bug type).

Ниже: подробности, пример, смежные термины, FAQ.

Подробности

  • Metrics: Prometheus, Grafana, Datadog, New Relic. Aggregated, efficient
  • Logs: Loki, ELK stack, CloudWatch. Full-text, expensive at scale
  • Traces: Jaeger, Zipkin, Tempo. Per-request detailed flow
  • Correlation: trace_id линкует все 3 (standard через OpenTelemetry)
  • Cardinality explosion: high-cardinality labels (user_id) убивают Prometheus

Пример

// OpenTelemetry instrumented code
const tracer = trace.getTracer('my-app');
const span = tracer.startSpan('db-query');
try {
  await db.query('SELECT ...')
} finally {
  span.end();  // exports trace to Jaeger/Tempo
}

Смежные термины

Больше по теме

Часто задаваемые вопросы

Observability vs Monitoring?

Monitoring = alerts на предetermined conditions. Observability = ad-hoc investigation через exploration. Overlap большой, но observability deeper.

Нужно ли все 3 pillars?

Минимум: metrics + logs. Traces — когда есть microservices/distributed. В monolith начинаем с first two.

Stack suggestions?

Small team: Datadog (SaaS, all-in-one) или Grafana Cloud (cheaper). Self-host: Prometheus + Loki + Tempo + Grafana (LGTM).