Skip to content

KPIs & Reports

Каждый агент автоматически получает KPI — набор метрик, которые OPORA считает на основе trace-событий без дополнительной конфигурации от вас. Для тех, кому нужно измеримое, не «кажется что заработало».

KPIЧто меряетGranularity
runs_totalСколько run’ов стартовалоper agent / per channel
runs_succeededСколько завершилось doneper agent / per channel
runs_failedСколько упало failedper agent / per channel
success_ratesucceeded / totalderived, per agent
avg_duration_msМедианное время run’аper agent
p95_duration_ms95-процентильper agent
cost_total_rubСумма cost-event’ов (LLM-tokens, внешние API)per agent
cost_avg_per_run_rubСредний cost на runderived
approvals_pendingСколько approvals висятper agent
approvals_expiredСколько TTL’ом выбилосьper agent

Granularity агента выбирается при создании (template default = per_agent, custom может поставить per_channel — разбивка по типу trigger-ноды).

V1 custom-формулы не поддерживаются (было в roadmap, перенесли post-launch). Если вам нужно считать «конверсия из лидов в сделки» — через template-level KPI (instantiate-time param) или через агрегат в data-table’ах.

/agents/<id> показывает все KPI’и текущего окна (default 7 дней)

  • sparkline trend за 30 дней. Клик на sparkline → drill-down в /agents/<id>/kpis/<kpi>.

/ (workspace dashboard) показывает агрегат всех агентов space’а (SpaceKpiSummary). Удобно для «как команда в целом работает».

KPI обновляются background-worker’ом раз в 5 минут. Если нужно сразу — кнопка Refresh на KPI-виджете дернёт пересчёт немедленно.

Reports — PDF-отчёт по агенту за период. Weekly / daily.

Автоматически:

  • Cron-scheduler запускает еженедельно weekly-report для агентов с reports.weekly = true
  • Для daily’ей — daily cron

Вручную: /agents/<id>/reportsGenerate → выбрать period → OPORA материализует AgentReport с content’ом:

  • Summary: сколько runs / success rate / cost
  • Top 5 failed runs с причинами
  • KPI trend-графики (за последние 30 дней, даже если report для недельного окна)
  • Natural-language summary от LLM’а (опционально, если агент разрешил reports.use_llm_summary)
  • UI-download — кнопка Download PDF на карточке отчёта
  • Email — если в agent settings указан reports.emailTo, OPORA шлёт PDF через Resend (B3)
  • Telegram — аналогично если указан reports.telegramChatId
  • APIGET /agents/<id>/reports/<reportId>/pdf

Каждый run, который тратит деньги (LLM-call, платёжный API с per-request pricing), пишет cost.* событие в trace. Агрегация по этим событиям — источник cost_total_rub KPI.

Ledger виден на /usage странице space’а — там breakdown по node-type / agent / period. Полезно когда квоты в pro-tier заедают и нужно понять, какой агент ест больше всего.

KPI-values хранятся forever (это не раздутое хранилище — дневной aggregate, ~1KB на agent-day).

Report’ы — 90 дней по умолчанию, настраивается на space-уровне.

Raw trace-events (из которых KPI считается) — 90 дней, настраивается. После retention-cut-off’а KPI уже посчитаны и живут своей жизнью, но drill-down в individual runs исчезает.