Что такое Observability

«Что такое Observability» — вопрос из категории DevOps, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Observability в Go — это способность системы предоставлять данные для мониторинга, отладки и анализа работы в реальном времени. Основные компоненты:

  1. Метрики (Metrics) — числовые показатели (CPU, память, запросы в секунду). Используют prometheus.Client:
counter := prometheus.NewCounter(prometheus.CounterOpts{
    Name: "http_requests_total",
    Help: "Total HTTP requests",
})
prometheus.MustRegister(counter)
  1. Логи (Logging) — структурированные записи событий. Популярные библиотеки — zap, logrus:
logger, _ := zap.NewProduction()
logger.Info("User logged in", zap.String("user", "Alice"))
  1. Трейсинг (Tracing) — отслеживание запросов через распределённые системы. Инструменты — OpenTelemetry, Jaeger.

Observability помогает быстро находить узкие места, анализировать сбои и понимать поведение системы в проде. Ключевое отличие от мониторинга — возможность задавать новые вопросы по данным без изменения кода.