🧑💻 Всем легкого рабочего дня сегодня.
Хотя мне еще отдыхать 2 дня, пора потихоньку возвращаться в рабочий режим.
➡Прослушала подкаст про Observability: что это, для чего нужно и какие есть инструменты.
▶
Observability (наблюдаемость) - отслеживание и анализ поведения системы в режиме реального времени. Включает в себя логирование, сбор метрик и трассировку.▶
Логирование - запись событий и действий в системе.
🛠Инструменты:
- Grafana-стек: Promtail (сбор) + Loki (хранение) + Grafana (визуализация)
- ELK- стек: Logstash (сбор) + ElasticSearch (хранение) + Kibana (визуализация)
(ELK в последнее время используется реже из за ценовой политики и ресусроемкости ElasticSearch)
▶
Метрики - это числовые показатели, которые отражают состояние системы или процесса в момент времени.
Нр: использование CPU и памяти, время отклика, пропускная способность…
🛠 Инструменты:
- Grafana-стек: Prometheus (сбор метрик и временное хранение) + Grafana (визуализация)
Для длительного хранения метрик можно использовать Grafana Mimir, Thanos
- VictoriaMetrics
- Zabbix
▶
Трассировка - отслеживание пути выполнения запросов в системе в разрезе разных слоев. Позволяет увидеть последовательность вызовов, время выполнения каждого запроса на каждом слое итп.
🛠 Инструменты:
- Grafana-стек: Tempo (хранение) - Grafana (визуализация)
- Elastic APM
- Jaeger
- Zipkin
▶ Для сбора трейсов обычно используют стандарт OpenTelemetry.
OpenTelemetry (OTel)- это проект с открытым исходным кодом для стандартизации сбора метрик, логов и трейсов в распределенных системах. OTel представляет собой набор API и SDK для различных ЯП. Позволяет отправлять данные в различные системы мониторинга. Но с метриками, говорят, работает не очень.
▶ Существуют также APM (Application Performance Management) решения от разных вендоров для комплексного мониторинга и управления производительностью и доступностью сервисов.
Нр: Dynatrace, AppDynamics, Datadog, Instana, Elastic APM, Signoz итп. Но не все они доступны в РФ.
_________________________________________________
На моем прошлом проекте для решения задач Observability мы использовали:
Для метрик: Prometheus + Grafana
Для логов: Promtail + Loki + Grafana
Дополнительно для логов и трейсов: Vector (для сбора) + OpenObserve (хранение, анализ и визуализация).
🔤А какие инструменты для Observability используются на ваших проектах?