- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
2.6 KiB
🔬 Стоит ли брать OpenTelemetry вместо голого Prometheus
- Тип: research
- Категория: Очередь — Сопровождение: словарь метрик выбирается до того, как метрик станет втрое больше.
- Зачем: Метрик одиннадцать штук на пять счётчиков, трассировки нет вовсе: путь одной записи по конвейеру собирается только чтением логов глазами.
- Теги: goal:service-observability
Эндпоинт /metrics остаётся и развивается — это решено. Вопрос в том, чем его
развивать: дописывать счётчики в internal/metrics напрямую через
client_golang или перевести на OpenTelemetry и получить заодно трассировку.
Сегодня у записи есть путь длиной в минуты через четыре внешних сервиса и три
воркера, и связать его звенья можно только по job_id в логах. Трассировка
отвечает на это прямо, но приносит коллектор — процесс, которого в выкладке нет.
Вопрос
Даёт ли OpenTelemetry на этом проекте больше, чем стоит: коллектор в выкладке,
переписанные метрики и словарь имён, — или дешевле остаться на client_golang и
дописать недостающие счётчики.
Куда ляжет ответ
docs/research/opentelemetry.md — с числами: сколько зависимостей приносит,
что появляется в выкладке, сколько метрик переписывается. Решение и причина
отказа — в docs/adr/, если берём: переход на другой словарь метрик ломает
собранные ряды и обратной правкой не откатывается.
Рамки
Метрики Prometheus и путь /metrics из ответа не исчезают ни при каком исходе:
OpenTelemetry рассматривается как источник тех же метрик, а не как замена
эндпоинта. Своего хранилища метрик и своих панелей не поднимаем — это отдельная
работа.