Метрики и наблюдаемость
Наблюдаемость
- Контроллеры. Все HTTP-хэндлеры проходят через
ControllerMetricsMiddleware, который фиксируетsource(acp/v1/v2/ext/api),handler, latency (avg/p95) и ошибки. Эти данные видны как в/acp/system/metrics, так и в Prometheus (/metrics). - Внешние HTTP-клиенты. Базовый
infrahttp.Clientобёрнут метриками и ретраями; даже при повторных запросах счётчикиhttp.total_requests/errors/duration_ms_sumостаются актуальными. - Фоновые задачи. Планировщик (
internal/infrastructure/scheduler) пишет вTaskMetricsколичество запусков, ошибки, последнюю длительность и timestamp. Из ACP это отдаётся в секцииtasks, а в Prometheus — вmarv_task_*метриках. - Логи ↔ метрики. Middleware
RequestIDсохраняет идентификатор вgin.Contextиzerolog. Контроллерные метрики добавляют лейблыhandler/source/request_id. - Экспорт. Помимо JSON-эндпоинта
/acp/system/metrics, можно включить/metrics(Prometheus format) черезobservability.metrics.prometheus_enabled: true. Эндпоинт отдаётmarv_controller_*,marv_task_*,marv_http_client_*.
Команды CI/CD и этапы пайплайна описаны в Сборка и требования.
