0.134.53
Fixed
Метрики: оживление мёртвых счётчиков + новые секции в UI
Из аудита системы метрик обнаружено: из ~30 метрик реально собирались
только 9 (bus, auth, kg, memory). Остальные (llm, http, sessions, tools,
actor, cron) — мёртвый код. Кроме того, страница /settings/metrics
не показывала секции KG и Memory, хотя API их отдаёт.
Backend
- LLM (
runner.go):RecordLLMCall/RecordLLMErrorтеперь вызываются после каждого LLM-запроса.RecordLLMTokensBreakdownподключён вactor.goприrecordUsage(системные / RAG / история). - HTTP (
middleware/logging.go):RecordHTTPRequestтеперь инкрементируется для каждого HTTP-запроса (errors — для статусов ≥500). - Tools (
runner.go):RecordToolCallвызывается для каждого результата инструмента. - Actor (
actor.go):RecordActorHandleзамеряет длительность обработки входящего сообщения.RecordMaxIterationsсрабатывает при достижении лимита итераций.RecordTurnфиксирует количество итераций на тур. - Sessions (
loop.go): добавленыRecordSessionCreated/IncSessionsActive/DecSessionsActive. Создание и удаление session-actor теперь инструментированы. - Cron (
cron/service.go):RecordCronMissedинкрементируется вrecalcAllJobsдля просроченных задач (every/cron), которые пересчитываются вместо выполнения. - LLMLastCall: новое поле
last_call_at(RFC3339) в JSON-снапшоте и Prometheus-выводе.
Frontend
- Страница
/settings/metrics: добавлены 2 новые секции — Граф знаний (KG) и Память (Memory) — с глобальными счётчиками и per-agent gauges. - LLM-секция: добавлено поле
tokens_cache_creation(кэш-запись). - API-клиент:
api.metrics()типизирован черезMetricsSnapshot(ранее возвращалunknown). - Удалён дублирующий интерфейс из svelte-файла, используется
централизованный тип из
types.ts.
Tests
internal/metrics/metrics_test.go: расширено с 12 до 23 тестов. Покрыты все Record-методы (включая новые Session-методы),LLMLastCallв Snapshot, KG- и Memory-gauges, Prometheus-формат, singleton.