Разведка job-queue-choice — очередь написана вручную: захват не транзакционен, повторов и счётчика попыток нет, очереди мёртвых задач нет. Стоит перед сменой хранилища, чтобы не переписывать захват дважды. Цель text-insights: заголовок, пересказ и темы внешним сервисом с OpenAI-совместимым интерфейсом. Граница паспорта сдвинута — «понимание сказанного» было записано как то, чем проект не является; за границей остались ответы на вопросы по записи и поиск по смыслу. Цель service-observability в сопровождении и разведка opentelemetry-fit: /metrics остаётся и развивается, способ решает замер.
1.8 KiB
1.8 KiB
🎯 Состояние сервиса видно без чтения логов
- Тип: goal
- Секция: Сопровождение
- Зачем: Отказ замечает пользователь, а не владелец: оповещения нет, а путь записи по конвейеру собирается глазами по логам контейнера.
Наблюдаем мы, а не пользователь сервиса, — поэтому цель стоит в сопровождении, а не среди возможностей приложения. Пользовательская половина той же темы живёт отдельно: о готовности своей записи человек узнаёт по цели ready-notification.
Эндпоинт /metrics остаётся и развивается. Чем именно развивать — голым
client_golang или OpenTelemetry с трассировкой — решает разведка
opentelemetry-fit.
Завершение
- По метрикам видно, что конвейер встал: задача висит в состоянии дольше обычного, и это отличимо от «работы нет».
- Каждый внешний сервис имеет метрику вызовов, отказов и длительности — сегодня их нет ни у одного.
- Путь одной записи по конвейеру собирается запросом, а не чтением логов глазами.
- Владелец узнаёт об отказе сам, а не от пользователя.
- Стоимость обращений к платным сервисам видна числом.