
Что такое observability и зачем она нужна?
Observability — это возможность понять, что происходит внутри системы, не заглядывая в код. Представьте: у вас есть приложение. Оно падает. Вы не знаете почему.
Observability даёт три типа «подсказок»:
- Логи — текстовые сообщения: «Ошибка 404», «Пользователь 123 вошёл».
- Метрики — цифры: «CPU 85%», «2000 запросов в секунду».
- Трассировки — цепочка: «запрос прошёл через сервис A → B → C, задержка на B — 2 сек».
Зачем это бизнесу?
- SRE: находит проблему за 5 минут вместо часа.
- Продукт: видит, что 10% пользователей уходят на шаге оплаты.
- Финансы: считает, сколько стоит каждый час простоя.
Наблюдаемость 1.0 — каждый инструмент в отдельной вкладке
Наблюдаемость 1.0 определяется как использование «трёх столпов»: журналов, метрик и трассировок.
Как это выглядело на практике: ошибка → вы открываете три разных сервиса:
| Инструменты | Что показывали | |
|---|---|---|
| Логи | ELK, Splunk, Graylog | Строки текста |
| Метрики | Prometheus, InfluxDB | Графики цифр |
| Трассировки | Jaeger, Zipkin | Карта запросов |
Как решали проблему:
- Kibana → ищем логи по времени.
- Grafana → смотрим метрики.
- Jaeger → ищем трассировку.
- Вручную соединяем: «ага, в 14:32 был пик CPU и ошибка в логе».
Главные проблемы:
- 5+ инструментов для одной ошибки.
- 10–15 минут на переключение между вкладками.
- Данные теряются — не всё индексируется.
- Инструментирование — ручная работа для каждого языка.
Реальный кейс: команда из 10 человек тратила 2 часа в день на корреляцию логов и метрик.
Наблюдаемость 2.0 — «всё в одном месте»
Тезис Observability 2.0 заключается в том, что мы должны отправлять полноценные данные в системы хранения и обработки запросов в виде «широкоструктурированных журналов». Это, по сути, журналы с множеством полей, которые должны быть «самостоятельными» и рассказывать историю о определённой части системы. Теперь можно отслеживать путь пользователя от начала до конца.
Что изменилось:
Появился OpenTelemetry — единый стандарт сбора всех сигналов. Платформы вроде Datadog, Grafana Cloud, Elastic теперь показывают всё в одном дашборде.
Как это работает:
- Один trace ID связывает лог, метрику и трассировку.
- Структурированные логи: {"user_id": 123, "error": "timeout", "latency_ms": 1200}.
- Единый интерфейс: кликаете на ошибку → сразу видите метрику и трассировку.
Плюсы:
- Ошибка → 2 клика → корень проблемы.
- OpenTelemetry SDK — один код для Java, Python, Go.
- Команды видят одно и то же — меньше «я вижу, а ты нет».
Минусы:
- Отправляем всё → счёт за терабайты.
- OpenTelemetry — «просто добавь 10 строк» → на деле неделя на настройку.
- Бизнес не видит ROI: «красиво, но где деньги?»
Реальный кейс: компания с 200 микросервисами перешла на Datadog + OTel.
Результат:
- Время на инцидент: –70% (с 45 мин до 13).
- Затраты на телеметрию: +$Х / год.
Наблюдаемость 3.0 — «умная, дешёвая, бизнесовая»
Главная идея: собираем всё — отправляем только важное (работает как видеорегистратор: пишет всё, но загружает только при аварии)
| Принцип | Как реализовано |
|---|---|
| Локальное хранение | Буфер на поде/устройстве |
| Умный отбор | Правила: latency > 95%, error=5xx, feature_flag=on |
| AI/ML | Авто-обнаружение: «трафик из Астаны упал на 40%» |
| Бизнес-KPI | Дашборд: «это падение = –$5000 в час» |
| Озеро данных | Observability + аналитика в ClickHouse/Snowflake |
Новые тренды 3.0
| Тренд | Что даёт | Пример |
|---|---|---|
| eBPF | Сбор метрик без кода | Pixie, Cilium Hubble |
| Cardinality control | Не тонем в user_id | Honeycomb Refinery |
| SLO-based alerting | Алерты по бизнесу | Google SRE: error budget |
| Cost-aware sampling | Платим за важное | Lightstep Change Intelligence |
Эволюция в одной таблице
| Версия | Цель | Боль | Пример решения |
|---|---|---|---|
| 1.0 | Собрать хоть что-то | 3 инструмента, ручная корреляция | ELK + Prometheus + Jaeger |
| 2.0 | Понять систему | Объём данных, сложность | OpenTelemetry + Datadog |
| 3.0 | Повысить ценность для бизнеса | Затраты, шум | Bitdrift / New Relic / Honeycomb + AI |

