Добавить метрику расхода ИИ-бюджета

Gauge deal.ai.budget.used.ratio{tenant} (доля израсходованного бюджета периода) собирается RuntimeDepthsCollector и публикуется DealMetricsCollector — основа для алертинга. Закрывает BL-ALERT-BUDGET.
This commit is contained in:
Rustam Khalimov
2026-09-11 17:30:26 +03:00
parent 000d433438
commit d2b716bbf4
11 changed files with 272 additions and 21 deletions
@@ -272,7 +272,9 @@ settings(Key varchar(200) PK, ValueJson text, UpdatedAt timestamptz) --
- `deal_ml_calls_total` / `deal_ml_tokens_total` — вызовы и оценка токенов локального ML;
- `deal_audit_events_total{event,actor}` — события аудита по типу/актору;
- `deal_pipeline_queue_depth`, `deal_ml_outbox_depth` — суммарные глубины очередей (пайплайн, MlOutbox)
по всем тенантам; `deal_sessions_active` — активные непросроченные сессии пользователей и операторов.
по всем тенантам; `deal_sessions_active` — активные непросроченные сессии пользователей и операторов;
- `deal_ai_budget_used_ratio{tenant}` — доля израсходованного ИИ-бюджета периода (0..1) по тенантам
(осознанное исключение из низкокардинального правила: бюджеты пер-тенантные, алерт должен знать тенанта).
Gauge-значения собирает фоновый `DealMetricsCollector` ядра (каждые 15 с) через существующие
сервисы/хранилища (`PipelineProcessingService.QueueCountsAsync`, `IMlLearningStore.CountOutboxAsync`,
`public.sessions`/`operator_sessions`); инкремент счётчиков токенов/аудита — там же, где пишутся