Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ
MonitoringHealth ChecksAuto-Recovery

Мониторинг AI-агентов с нуля: метрики, heartbeat и auto-recovery за час

1 минута чтения

Стандартный top и htop показывают CPU и RAM — но не говорят,почему процесс node потребляет 90% CPU. Когда этот процесс — AI-агент, вам нужно знать: сколько токенов он сжигает, сколько API-вызовов делает, не зациклился ли он в retry-loop. Ниже — пошаговая инструкция настройки мониторинга с конкретными конфигами.

Краткий ответ

Чтобы мониторить AI-агента, соберите 8 прикладных метрик (токены, latency, cost, tool calls, policy violations) через Prometheus-эндпоинт /metrics, добавьте systemd heartbeat с WatchdogSec=30, опишите alert-правила с конкретными порогами и включите auto-recovery (switch_model / throttle / provider-fallback). Полная настройка — около часа, и runaway-агент больше не сожжёт бюджет за ночь.

63%

команд не имеют нужной видимости того, что делают их AI-агентыCPU и RAM в htop не объясняют ни стоимость, ни зацикливание в retry-loop.
Поток метрик
  1. AI-агенты
  2. FlowLink
  3. Prometheus
  4. Alertmanager
  5. Grafana

Настройка мониторинга AI-агентов за час

Пять шагов от экспорта метрик до автоматического восстановления. Ниже — подробный разбор с конфигами.

  1. Соберите 8 ключевых метрик

    Включите экспорт /metrics на порту 9095: токены, latency, cost, tool calls, policy violations.

  2. Настройте heartbeat

    systemd unit с WatchdogSec=30 и Restart=on-failure перезапустит зависшего агента.

  3. Опишите alert rules

    Пороги для tool storm, LLM latency, budget overrun и context bloat в Prometheus.

  4. Включите auto-recovery

    switch_model, throttle и provider-fallback при срабатывании алертов.

  5. Импортируйте Grafana-дашборд

    flowlink dashboard import — 20 готовых панелей с alert annotations.

Шаг 1. Что именно собираем — 8 ключевых метрик

AI-агент отличается от обычного сервиса. Вот метрики, которые реально важны:

Восемь ключевых метрик здоровья AI-агента в формате Prometheus
Метрика (Prometheus)ТипЗачем
ai_agent_tokens_totalCounterСтоимость: input + output токены по каждой модели
ai_agent_llm_latency_secondsHistogramДеградация: p50/p95/p99 ответа от LLM provider
ai_agent_tool_calls_totalCounterОбъём: сколько MCP/bash/git вызовов
ai_agent_policy_violationsCounterБезопасность: сколько раз заблокирована политика
ai_agent_error_rateGaugeНадёжность: % неуспешных LLM-ответов (rate/timeout/context)
ai_agent_cost_usdGaugeБюджет: текущий расход сессии/агента/команды
ai_agent_context_size_tokensGaugeContext bloat: размер контекста (рост → расходы)
ai_agent_credential_access_totalCounterСекреты: обращение к vault/credentials

FlowLink экспортирует все эти метрики в формате Prometheus через /metricsendpoint на порту 9095:

/metrics endpoint
bash
# curl http://localhost:9095/metrics | grep ai_agent
ai_agent_tokens_total{agent="cursor",model="gpt-4o",direction="input"} 284729
ai_agent_tokens_total{agent="cursor",model="gpt-4o",direction="output"} 42103
ai_agent_llm_latency_seconds_bucket{le="1"} 842
ai_agent_llm_latency_seconds_bucket{le="5"} 2891
ai_agent_cost_usd{agent="cursor",team="backend"} 12.47
ai_agent_policy_violations{agent="claude-code",rule="no_prod_write"} 3

Шаг 2. Настройка heartbeat через systemd

Heartbeat — простой механизм: агент периодически сигнализирует «я жив». Если сигнала нет — systemd перезапускает процесс. Вот готовый service unit:

/etc/systemd/system/flowlink-agent.service
yaml
[Unit]
Description=FlowLink AI Agent Monitor
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/flowlink agent --config /etc/flowlink/agent.yaml
Restart=on-failure
RestartSec=10
WatchdogSec=30
# Health check через HTTP endpoint
ExecStartPost=/bin/sleep 3
ExecStartPost=/usr/bin/curl -sf http://localhost:9095/health || exit 1
# Resource limits
MemoryMax=2G
CPUQuota=200%
# Environment
Environment=FLOWLINK_LOG_LEVEL=info
Environment=FLOWLINK_METRICS_PORT=9095
[Install]
WantedBy=multi-user.target

WatchdogSec=30

WatchdogSec=30 — systemd убьёт процесс, если тот не отправил sd_notify(READY=1) за 30 секунд. FlowLink автоматически интегрируется с systemd watchdog, поэтому зависший или зациклившийся агент перезапускается без участия дежурного.

Шаг 3. Alert rules с конкретными порогами

Прометеус-алерты без конкретных порогов бесполезны. Вот production-ready правила:

/etc/prometheus/rules/ai-agents.yml
yaml
groups:
- name: ai_agent_health
rules:
# Агент зациклился: > 100 tool calls за 5 минут
- alert: AgentToolCallStorm
expr: rate(ai_agent_tool_calls_total[5m]) > 0.33
for: 2m
labels:
severity: warning
annotations:
summary: "Agent {{$labels.agent}} makes >100 tool calls/min"
runbook: "https://wiki.internal/runbooks/tool-storm"
# LLM latency деградировала
- alert: LLMLatencyHigh
expr: histogram_quantile(0.95, rate(ai_agent_llm_latency_seconds_bucket[5m])) > 15
for: 5m
labels:
severity: warning
annotations:
summary: "p95 LLM latency > 15s for {{$labels.model}}"
# Перерасход бюджета: > $50/час
- alert: BudgetOverrun
expr: rate(ai_agent_cost_usd[1h]) > 50
for: 10m
labels:
severity: critical
annotations:
summary: "Agent {{$labels.agent}} spending >$50/hr"
# Policy violations spike
- alert: PolicyViolationsSpike
expr: increase(ai_agent_policy_violations[1h]) > 10
labels:
severity: warning
annotations:
summary: "{{$labels.agent}} triggered {{$value}} policy violations in 1h"
# Context window почти полон (>80%)
- alert: ContextBloat
expr: ai_agent_context_size_tokens > 160000
for: 5m
labels:
severity: info
annotations:
summary: "{{$labels.agent}} context at {{$value}} tokens (cap: 200k)"

Шаг 4. Auto-recovery — graceful degradation

Когда алерт срабатывает, FlowLink может не просто уведомить, но и автоматически реагировать. Вот конфиг auto-recovery:

/etc/flowlink/recovery.yaml
yaml
auto_recovery:
enabled: true
# При budget overrun — переключаем на дешёвую модель
triggers:
- alert: "BudgetOverrun"
actions:
- type: switch_model
from: "gpt-4o"
to: "gpt-4o-mini"
- type: notify
channel: "slack"
message: "Switched {{agent}} to gpt-4o-mini due to budget overrun"
# При tool storm — замораживаем агента на 60 секунд
- alert: "AgentToolCallStorm"
actions:
- type: throttle
max_calls_per_minute: 5
duration: 60s
- type: notify
channel: "pagerduty"
severity: "high"
# При latency — fallback на другой provider
- alert: "LLMLatencyHigh"
actions:
- type: switch_provider
from: "anthropic"
to: "openai"
fallback_model: "gpt-4o"
- type: log
message: "Provider switched due to latency"

Auto-recovery: плюсы и минусы

Плюсы

  • Бюджет защищён: при overrun агент автоматически переключается на gpt-4o-mini
  • Runaway-агент останавливается за минуты, а не за часы ночных инцидентов
  • Fallback на другого провайдера при деградации Anthropic
  • Меньше страниц в PagerDuty — дежурный не просыпается по пустякам

Минусы

  • Деградация качества при переключении на дешёвую модель
  • Ложные срабатывания могут throttle-ить легитимную нагрузку
  • Требует аккуратной настройки порогов alert-правил

Результат

С этой конфигурацией runaway-агент не уничтожит бюджет за ночь: вы получите Slack-уведомление, а агент продолжит работу на budget-модели с ограниченным rate.

Шаг 5. Графана-дашборд — что видеть в первую очередь

На главном экране дашборда должны быть четыре панели:

  • Top-left: sum(rate(ai_agent_cost_usd[1h])) by (agent) — расходы в реальном времени ($/час по агентам)
  • Top-right: histogram_quantile(0.95, rate(ai_agent_llm_latency_seconds_bucket[5m])) — p95 latency по моделям
  • Bottom-left: increase(ai_agent_policy_violations[1h]) — количество нарушений политик за час
  • Bottom-right: ai_agent_context_size_tokens — размер контекста (график по времени — показывает growth rate)
Grafana — ключевые PromQL-запросы
bash
# Top-left: cost ($/час по агентам)
sum(rate(ai_agent_cost_usd[1h])) by (agent)
# Top-right: p95 latency по моделям
histogram_quantile(0.95, rate(ai_agent_llm_latency_seconds_bucket[5m]))
# Bottom-left: нарушения политик за час
increase(ai_agent_policy_violations[1h])
# Bottom-right: размер контекста во времени
ai_agent_context_size_tokens

20

панелей в готовом Grafana JSON-дашборде FlowLinkС alert annotations и преднастроенным Prometheus datasource.

FlowLink поставляет готовый JSON для импорта в Grafana: flowlink dashboard import — одна команда, и все 20 панелей с alert annotations появятся в вашем Grafana.

Часто задаваемые вопросы

Чем мониторинг AI-агента отличается от обычного сервиса?

Обычный top/htop показывает только CPU и RAM. AI-агенту нужны метрики уровня задачи: ai_agent_tokens_total, ai_agent_cost_usd,ai_agent_llm_latency_seconds, ai_agent_tool_calls_total иai_agent_policy_violations. Они объясняют, почему процесс потребляет ресурсы и сколько это стоит в долларах.

Какие метрики важнее всего собирать?

Минимальный набор — токены (стоимость), p95 latency провайдера, error rate, cost в долларах, число tool calls, policy violations, размер контекста и обращения к секретам. Эти восемь метрик FlowLink экспортирует из коробки через /metrics на порту 9095.

Как systemd watchdog помогает авто-восстановлению?

Директива WatchdogSec=30 заставляет systemd убить процесс, если тот не отправил sd_notify(READY=1) за 30 секунд. В паре с Restart=on-failure зависший или зациклившийся агент перезапускается автоматически — без участия дежурного.

Что делать, если AI-агент зациклился в retry-loop?

Сработает алерт AgentToolCallStorm(>100 tool calls за 5 минут). Auto-recovery в FlowLink применит throttle (≤5 вызовов/мин на 60 секунд), отправит страницу в PagerDuty и при необходимости переключит модель или провайдера.

Нужен ли отдельный Grafana-дашборд для AI-агентов?

Да. Универсальные дашборды не показывают cost, токены и context bloat. FlowLink поставляет готовый JSON с 20 панелями и alert annotations — импортируйте одной командой flowlink dashboard import.

Мониторинг AI-агентов не должен быть сложным. Prometheus уже крутится в вашей инфраструктуре, systemd уже управляет процессами. Осталось добавить правильные метрики и пороги — и у вас будет visibility, которой не хватает 63% команд.

Grafana с пустым дашбордом не спасёт от runaway-агента

FlowLink Monitoring поставляется с готовым JSON-дашбордом для Grafana: 20 панелей, alert rules, Prometheus datasource. Импортируйте — и через 5 минут вы видите, что делают ваши агенты.

Скачать дашборд