Мониторинг и Alerting
Метрики, дашборды, alerting rules, Prometheus интеграция, Grafana и webhook уведомления
Обзор
FlowLink предоставляет full-stack мониторинг: от метрик агентов (CPU, RAM, disk) до метрик самого FlowLink (request latency, Shield scan time, policy evaluation time). Данные доступны через API, /metrics endpoint для Prometheus и встроенные дашборды. Alerting rules позволяют настраивать автоматические уведомления через Telegram, email, Slack и webhook.
Агент метрики
CPU, RAM, disk, network, uptime
Все тарифы
Prometheus
/metrics endpoint, OTLP export
Все тарифы
Alerting
Telegram, email, Slack, webhook
Team+
Grafana
Встроенные и кастомные дашборды
Все тарифы
Архитектура мониторинга
Мониторинг FlowLink состоит из 3 уровней: агент-уровень (heartbeat метрики), relay-уровень (обработка запросов, Shield, Policy) и системный уровень (БД, очереди, память). Все уровни экспортируют метрики через /metrics endpoint.
# 3 уровня метрик
1. Agent Level
flowlink_agent_cpu_percent{agent_id="..."} 23.5
flowlink_agent_ram_percent{agent_id="..."} 61.2
flowlink_agent_status{agent_id="...",status="healthy"} 1
2. Relay Level
flowlink_relay_requests_total{method="POST",path="/mcp"} 15420
flowlink_shield_scan_duration_seconds{layer="L1"} 0.005
flowlink_policy_evaluation_duration_seconds 0.003
3. System Level
flowlink_db_connections_active 12
flowlink_queue_size{queue="audit"} 42
flowlink_process_memory_bytes 524288000
Пороги статуса здоровья
| Status | CPU | Память | Disk | Действие |
|---|---|---|---|---|
| Healthy | 0-50% | 0-70% | 0-70% | Мониторинг |
| Degraded | 50-75% | 70-85% | 70-85% | Алерт admin |
| Critical | >75% | >85% | >85% | Блокировка + алерт |
Конфигурация
1# Мониторинг конфигурация (flowlink.config.yml)2monitoring:3 enabled: true45 # Health thresholds6 thresholds:7 healthy:8 cpu: 509 memory: 7010 disk: 7011 degraded:12 cpu: 7513 memory: 8514 disk: 8515 critical:16 cpu: 9517 memory: 9518 disk: 9519 offline_seconds: 602021 # Metrics22 metrics:23 enabled: true24 path: "/metrics"25 namespace: "flowlink"2627 # Timeseries retention28 timeseries:29 retention_days: 3030 resolution_seconds: 60
API эндпоинты
Здоровье агента
1# Метрики конкретного агента2curl https://api.flowlink.io/api/v1/agents/prod-db-01/health \3 -H "Authorization: Bearer $TOKEN"45# Timeseries за последние 24 часа6curl "https://api.flowlink.io/api/v1/agents/prod-db-01/health/timeseries?from=2026-04-21T00:00:00Z&to=2026-04-22T00:00:00Z" \7 -H "Authorization: Bearer $TOKEN"89# Обзор здоровья всех агентов10curl https://api.flowlink.io/api/v1/agents/health/overview \11 -H "Authorization: Bearer $TOKEN"1213# Только критические агенты14curl "https://api.flowlink.io/api/v1/agents/health/overview?status=critical" \15 -H "Authorization: Bearer $TOKEN"
1{2 "agent_id": "prod-db-01",3 "status": "healthy",4 "cpu": { "usage_percent": 42.5, "load_avg": 1.2 },5 "memory": { "usage_percent": 65.3, "total_mb": 16384, "used_mb": 10701 },6 "disk": { "usage_percent": 58.2, "total_gb": 100, "used_gb": 58.2 },7 "network": {8 "in_mb_per_s": 12.4,9 "out_mb_per_s": 8.7,10 "connections": 1511 },12 "last_updated": "2026-04-21T20:00:00Z",13 "uptime_seconds": 8640014}
Обзор дашборда
1curl https://api.flowlink.io/api/v1/monitoring/overview \2 -H "Authorization: Bearer $TOKEN"
1{2 "total_agents": 25,3 "healthy": 22,4 "degraded": 2,5 "critical": 1,6 "offline": 0,7 "avg_cpu": 35.7,8 "avg_memory": 62.3,9 "avg_disk": 54.8,10 "relay": {11 "requests_per_second": 12.5,12 "avg_latency_ms": 28,13 "p95_latency_ms": 85,14 "error_rate": 0.02,15 "active_connections": 4516 },17 "shield": {18 "scans_per_second": 12.5,19 "avg_scan_time_ms": 8,20 "blocked_rate": 0.0321 },22 "system": {23 "db_connections_active": 12,24 "queue_size": 42,25 "memory_usage_mb": 51226 },27 "last_updated": "2026-04-21T20:00:00Z"28}
Timeseries данные
1{2 "agent_id": "prod-db-01",3 "resolution": "1m",4 "metrics": {5 "cpu": [6 { "timestamp": "2026-04-21T19:00:00Z", "value": 38.2 },7 { "timestamp": "2026-04-21T19:01:00Z", "value": 41.5 },8 { "timestamp": "2026-04-21T19:02:00Z", "value": 42.5 }9 ],10 "memory": [11 { "timestamp": "2026-04-21T19:00:00Z", "value": 64.8 },12 { "timestamp": "2026-04-21T19:01:00Z", "value": 65.0 },13 { "timestamp": "2026-04-21T19:02:00Z", "value": 65.3 }14 ]15 }16}
Prometheus интеграция
FlowLink экспортирует все метрики через /metrics endpoint в формате Prometheus exposition format. Настройте scraping в Prometheus для сбора данных.
1# prometheus.yml2scrape_configs:3 - job_name: 'flowlink'4 scrape_interval: 15s5 static_configs:6 - targets: ['flowlink-relay:9090']7 metrics_path: '/metrics'8 relabel_configs:9 - source_labels: [__address__]10 target_label: instance11 replacement: 'flowlink-relay'
1# Доступные метрики2curl -s "https://api.flowlink.io/metrics" | head -3034# flowlink_relay_requests_total{method="POST",path="/mcp/call",status="200"} 154205# flowlink_relay_request_duration_seconds_bucket{le="0.01"} 85006# flowlink_relay_request_duration_seconds_bucket{le="0.05"} 142007# flowlink_shield_scan_duration_seconds{layer="L1"} 0.0038# flowlink_shield_scan_duration_seconds{layer="L2"} 0.0059# flowlink_shield_scan_total{layer="L1",result="passed"} 1500010# flowlink_shield_scan_total{layer="L1",result="blocked"} 42011# flowlink_policy_evaluation_duration_seconds 0.00312# flowlink_policy_evaluation_total{action="allow"} 1420013# flowlink_policy_evaluation_total{action="deny"} 45014# flowlink_agent_cpu_percent{agent_id="agent-prod-01"} 23.515# flowlink_agent_ram_percent{agent_id="agent-prod-01"} 61.2
Alerting Rules
Настройте alerting rules для автоматических уведомлений при превышении пороговых значений. Правила оцениваются каждые 60 секунд.
1# Alerting rules (flowlink.config.yml)2alerting:3 rules:4 - name: "agent_cpu_critical"5 description: "CPU usage above 95%"6 condition:7 metric: "flowlink_agent_cpu_percent"8 operator: ">"9 threshold: 9510 for_seconds: 30011 actions:12 - type: "notify"13 channel: ["telegram", "email"]14 - type: "webhook"15 url: "https://hooks.slack.com/services/xxx"1617 - name: "shield_blocked_spike"18 description: "Shield blocked commands spike"19 condition:20 metric: "flowlink_shield_scan_total"21 filter: { result: "blocked" }22 operator: ">"23 threshold: 1024 for_seconds: 6025 actions:26 - type: "notify"27 channel: "telegram"2829 - name: "agent_offline"30 description: "Agent has not sent heartbeat"31 condition:32 metric: "flowlink_agent_status"33 filter: { status: "offline" }34 operator: "=="35 threshold: 136 for_seconds: 037 actions:38 - type: "notify"39 channel: ["telegram", "email", "pagerduty"]40 - type: "webhook"41 url: "https://your-webhook.example.com/alert"
Webhook уведомления
Каждый алерт может отправлять webhook на настроенный URL. Webhook payload содержит полную информацию о событии.
1{2 "alert_id": "alert_abc123",3 "rule_name": "agent_cpu_critical",4 "severity": "critical",5 "description": "CPU usage above 95% for agent-prod-01",6 "entity": {7 "type": "agent",8 "id": "agent-prod-01",9 "name": "prod-deploy-agent"10 },11 "metric": {12 "name": "flowlink_agent_cpu_percent",13 "value": 97.3,14 "threshold": 95,15 "operator": ">"16 },17 "duration_seconds": 300,18 "timestamp": "2026-04-21T20:00:00Z",19 "dashboard_url": "https://flowlink.io/dashboard/agents/agent-prod-01"20}
Grafana дашборды
FlowLink поставляется с готовыми Grafana dashboard JSON для импорта. Дашборды покрывают все уровни мониторинга.
Агент обзор
CPU, RAM, disk, uptime всех агентов
12 панелей
Shield анализ
Scan time, blocked/allowed ratio, L1-L4 breakdown
8 панелей
Relay performance
Request rate, latency, error rate, connections
10 панелей
1# Импорт дашборда в Grafana2# Menu → Dashboards → Import → Paste JSON34# Или через API:5curl -X POST "https://grafana.example.com/api/dashboards/import" \6 -H "Authorization: Bearer $GRAFANA_TOKEN" \7 -H "Content-Type: application/json" \8 -d '{"dashboard": {"json": ...}, "overwrite": true}'
Варианты использования
Alerting
Обнаружение всплесков CPU, утечек памяти, увеличения error rate. Настройте пороги и каналы уведомлений для pro-active мониторинга.
Capacity Planning
Идентификация серверов, приближающихся к лимитам. Используйте timeseries для прогнозирования трендов.
Performance Analysis
Сравнение до/после изменений конфигурации. Отслеживание latency Shield scan и policy evaluation.
Security Monitoring
Отслеживание блокировок Shield, всплесков risk score, аномалий в поведении агентов.
Устранение неполадок
/metrics не отвечает
Убедитесь что monitoring.enabled: true. Проверьте что порт 9090 доступен для Prometheus. Проверьте firewall rules.
Алерты не отправляются
Проверьте alerting.rules configuration. Убедитесь что notification channels настроены (Telegram bot token, email SMTP, webhook URL). Проверьте логи FlowLink на ошибки отправки.
Timeseries данные отсутствуют
Убедитесь что agents отправляют heartbeat. Проверьте timeseries.retention_days — данные за пределами retention удаляются. Проверьте параметры from/to в запросе.
Лучшие практики
Настройте Prometheus scraping
Используйте интервал 15 секунд для агентов и 30 секунд для системных метрик. Настройте retention в Prometheus (30 дней минимум).
Создайте кастомные Grafana дашборды
Импортируйте стандартные дашборды и настройте под вашу инфраструктуру. Добавьте панель с top-10 агентов по CPU/memory.
Настройте alerting с for_seconds
Не алертите на каждое колебание. Используйте for_seconds: 300 для стабильности — алерт отправляется только при длительном превышении порога.
Мониторьте сам мониторинг
Добавьте health check для FlowLink Relay и Prometheus в отдельную monitoring систему. Это предотвратит "слепые зоны".