Skip to content

Demo Apps with Traces,Logs,Metrics included (Grafana, Loki, Tempo, Jaeger, Prometheus, OpenTelemetry, Karma, Pyrra)

Notifications You must be signed in to change notification settings

GRomR1/monitoring-microservices-demo

Repository files navigation

Python Demo Apps with OpenTelemetry Traces, Logs and Metrics

Набор различных способов добавления 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: grafana_explore_traces
  • Открыть Jaeger UI, выбрать сервис внутри Services и нажать Find Traces: jaeger_expore_traces

Открыть трейс запроса и получить всю информацию по спанам:

  • Grafana: grafana_show_trace
  • Jaeger UI: jaeger_show_trace

Остановить сервисы

docker-compose down -v

Запуск тестового сценария

Запуск множества запросов на /users через k6:

k6 run k6-script.js

Просмотр индикатров SLO в Pyrra: pyrra_slo_indicators

Просмотр изменения значения индикатров SLO в Pyrra (например Latency - 95% успешных запросов должны быть обработаны быстрее, чем за 1с): pyrra_latency_indicator

Просмотр графиков изменения показателей используемых в расчете SLO в Pyrra: pyrra_latency_graphics

Просмотр графиков изменения показателей используемых в расчете SLO в Pyrra: pyrra_latency_graphics pyrra_availability_graphics

Полезные ссылки

About

Demo Apps with Traces,Logs,Metrics included (Grafana, Loki, Tempo, Jaeger, Prometheus, OpenTelemetry, Karma, Pyrra)

Resources

Stars

Watchers

Forks