OpenTelemetry и Grafana: диагностика API, PostgreSQL и фоновой задачи
В серии вы последовательно собираете учебный проект «Пульс». Каждый урок добавляет один механизм к результату предыдущего; в архиве приведены полные накопительные состояния lesson-01—lesson-12.
Нужны основы JavaScript, HTTP и SQL, локальная среда Node.js и отдельная лабораторная база PostgreSQL. Конкретные прямые зависимости закреплены в исходниках. Архив не содержит установленной среды и разрешённого lockfile.
| Урок | Результат |
|---|---|
| 1. Наблюдаемость сервиса заявок | Сопоставить три сигнала одной операции сервиса «Пульс». |
| 2. Логи и контекст запроса | Добавить структурированные события без тела запроса и секретов. |
| 3. Spans запросов API и PostgreSQL | Измерить SERVER-span и дочерний SQL-span ручной инструментацией. |
| 4. Передача контекста фоновой задаче | Сохранить W3C context в SQL-очереди и извлечь в worker. |
| 5. Метрики нагрузки и задержки | Считать запросы, длительность и возраст очереди независимо от traces. |
| 6. Кардинальность и безопасные атрибуты | Ограничить набор меток и ресурсных атрибутов. |
| 7. OpenTelemetry Collector и OTLP | Разделить приём, обработку и экспорт сигналов Collector. |
| 8. Tempo, Loki и Prometheus | Настроить три настоящих хранилища и источники Grafana. |
| 9. Дашборд для диагностики задержки | Собрать панели RED и маршрут к конкретному trace. |
| 10. Ошибки и правила оповещения | Отделить отказ заявки от отказа наблюдения и добавить alerts. |
| 11. Сэмплирование и разбор инцидента | Разобрать модельный инцидент и цену выборки. |
| 12. Выпуск наблюдаемого сервиса | Подготовить версии, shutdown, границы доступа и handoff. |
Скачать исходники. Выберите одно состояние вместо смешивания файлов разных уроков. Файлы схемы предназначены для пустой лабораторной базы; они не заявлены как миграции существующего приложения.
Материалы опубликованы. Учебные приложения, контейнеры, схемы и обработчики не запускались; показанные ответы и изменения описывают ожидаемый контракт. Версии и API сверены по первичной документации, а воспроизводимость среды предстоит проверить отдельно.