Набор различных способов добавления OpenTelemetry-библиотек (инструментация) в приложения написанные на Python с использованием фреймворков Flask, FastAPI
Набор готовых настроек в виде Docker-контейнеров для быстрого запуска сервисов для работы с метриками, логами и трейсами:
Grafana
- UI для работы с трейсами, логами и метрикамиJaeger UI
- UI и хранилище для трейсовPrometheus
- хранилище метрикOpenTelemetry Collector
- сбор и обработка OpenTelemetry-данныхLoki
- хранилище логовTempo
- хранилище трейсовPyrra
- процессинг и UI для работы с SLO, бюджетом ошибок и другими индикаторамиKarma
- UI для работы с алертамиAlertManager
- процессинг и UI для алертовWebhook Tester
- UI для просмотра отправляемых от AlertManager событийPyroscope
- просмотр профилировочной информации
TODO
TODO
Запустить все сервисы
docker-compose up -d
Выполнить запрос к edge-сервису (flask-app
):
curl http://127.0.0.1:8001/users
Найти запрос в UI:
- Открыть
Grafana
, выбратьTempo
, переключиться в тип запросаSearch
и нажатьRun query
: - Открыть
Jaeger UI
, выбрать сервис внутриServices
и нажатьFind Traces
:
Открыть трейс запроса и получить всю информацию по спанам:
Остановить сервисы
docker-compose down -v
Запуск множества запросов на /users через k6:
k6 run k6-script.js
Просмотр индикатров SLO в Pyrra:
Просмотр изменения значения индикатров SLO в Pyrra (например Latency - 95% успешных запросов должны быть обработаны быстрее, чем за 1с
):
Просмотр графиков изменения показателей используемых в расчете SLO в Pyrra:
Просмотр графиков изменения показателей используемых в расчете SLO в Pyrra:
- https://sre.google/books/ - must-have SRE Books
- https://blog.alexewerlof.com/p/slc - инструмент для работы с SLI/SLO
- https://manassharma.hashnode.dev/opentelemetry-logs-deep-dive - хорошая обзорная статья про построение мониторинга на основе связанных сигналов телеметрии на базе OpenTelemtry & OpenObserve
- https://mkaz.me/blog/2024/slo-formulas-implementation-in-promql-step-by-step/ - статья про расчет SLO на основе Prometheus метрик для веб-сервиса
- https://grafana.com/oss/pyroscope/ - использование профилировщика для задач мониторинга