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

Мониторинг здоровья агентов

Health checks, heartbeat конфигурация, статусы, алерты, auto-recovery и API мониторинга

Обзор

FlowLink автоматически собирает 12 метрик здоровья с каждого подключённого агента через heartbeat. Данные доступны через API, CLI и dashboard в реальном времени. 4 статуса здоровья: healthy, degraded, critical, offline. При переходе в degraded/critical/offline генерируются алерты, а при поддержке auto-recovery — автоматические действия.

12 метрик

CPU, RAM, disk, load, network, uptime

Все тарифы

Heartbeat

Настраиваемый интервал (10-60s)

Все тарифы

Auto-recovery

Автоматические действия при сбоях

Team+

Prometheus

/metrics endpoint для scraping

Все тарифы

Как работает мониторинг

Агент FlowLink периодически отправляет heartbeat на Relay сервер. Heartbeat содержит 12 метрик, собранных с хоста. Relay вычисляет агрегированный статус здоровья на основе пороговых значений. При отсутствии heartbeat в течение настроенного интервала — агент помечается как offline.

# Heartbeat pipeline

1. Agent → collect metrics (CPU, RAM, disk, ...)

2. Agent → send heartbeat to Relay (POST /health)

3. Relay → evaluate thresholds → compute status

4. Relay → store in timeseries DB

5. Relay → check status transition (healthy→degraded→critical→offline)

6. Relay → trigger alerts / auto-recovery if needed

7. Relay → expose /metrics for Prometheus

12 метрик здоровья

cpu_percent

Загрузка CPU (%)

0-100%

ram_percent

Использование RAM (%)

0-100%

ram_used_gb

RAM used (GB)

0-N GB

disk_percent

Использование диска (%)

0-100%

disk_free_gb

Свободное место (GB)

0-N GB

load_avg_1m

Load average (1 min)

0-N

uptime_seconds

Uptime

seconds

open_connections

Открытые соединения

0-N

process_count

Количество процессов

0-N

container_count

Количество контейнеров (Docker)

0-N

error_rate

Rate ошибок (5 min window)

0-100%

command_count_1h

Команд за последний час

0-N

Статусы здоровья

healthy

CPU < 80%, RAM < 85%, Disk < 90%

Мониторинг

degraded

CPU > 80% или RAM > 85%

Алерт admin

critical

CPU > 95% или Disk > 95%

Алерт + auto-recovery

offline

Нет heartbeat > 60s

Алерт + escalation

Конфигурация heartbeat

Интервал heartbeat и порог offline-детекции настраиваются на стороне агента и сервера. Рекомендуется 10-30 секунд для production deployments.

yaml
1# Конфигурация агента (flowlink-agent.yml)
2agent:
3 heartbeat_interval_seconds: 15 # Интервал отправки heartbeat
4 health_check_timeout_seconds: 5 # Timeout сбора метрик
5
6 # Метрики для сбора
7 metrics:
8 enabled: [cpu, ram, disk, load, network, processes, containers, connections, error_rate]
9
10 # Настройки сервера (flowlink.config.yml)
11server:
12 health:
13 offline_threshold_seconds: 60 # Нет heartbeat → offline
14 degraded_threshold_seconds: 30 # Задержка heartbeat → degraded warning
15 timeseries_retention_days: 30 # Хранение timeseries данных

API Reference

Обзор здоровья всех агентов

bash
1curl -s "https://api.flowlink.io/v1/agents/health/overview" \
2 -H "Authorization: Bearer $TOKEN" | jq
json
1{
2 "total_agents": 15,
3 "healthy": 12,
4 "degraded": 2,
5 "critical": 0,
6 "offline": 1,
7 "last_updated": "2026-01-15T14:30:00Z",
8 "agents": [
9 {
10 "agent_id": "agent-prod-01",
11 "agent_name": "prod-deploy-agent",
12 "status": "healthy",
13 "cpu_percent": 23.5,
14 "ram_percent": 61.2,
15 "disk_percent": 45.8,
16 "load_avg_1m": 1.24,
17 "uptime_seconds": 345600,
18 "open_connections": 15,
19 "process_count": 142,
20 "container_count": 3,
21 "error_rate": 0.2,
22 "command_count_1h": 45,
23 "last_heartbeat": "2026-01-15T14:30:00Z",
24 "reported_at": "2026-01-15T14:30:00Z"
25 },
26 {
27 "agent_id": "agent-prod-02",
28 "agent_name": "prod-db-agent",
29 "status": "degraded",
30 "cpu_percent": 87.3,
31 "ram_percent": 91.5,
32 "disk_percent": 72.1,
33 "load_avg_1m": 4.87,
34 "uptime_seconds": 864000,
35 "last_heartbeat": "2026-01-15T14:30:00Z",
36 "degraded_reasons": ["cpu_percent > 80%", "ram_percent > 85%"]
37 }
38 ]
39}

Здоровие конкретного агента

bash
1curl -s "https://api.flowlink.io/v1/agents/agent-prod-01/health" \
2 -H "Authorization: Bearer $TOKEN" | jq
json
1{
2 "agent_id": "agent-prod-01",
3 "agent_name": "prod-deploy-agent",
4 "status": "healthy",
5 "status_history": [
6 { "status": "healthy", "since": "2026-01-14T10:00:00Z" },
7 { "status": "degraded", "from": "2026-01-13T15:00:00Z", "to": "2026-01-14T10:00:00Z" }
8 ],
9 "current_metrics": {
10 "cpu_percent": 23.5,
11 "ram_percent": 61.2,
12 "ram_used_gb": 10.0,
13 "disk_percent": 45.8,
14 "disk_free_gb": 54.2,
15 "load_avg_1m": 1.24,
16 "uptime_seconds": 345600,
17 "open_connections": 15,
18 "process_count": 142,
19 "container_count": 3,
20 "error_rate": 0.2,
21 "command_count_1h": 45
22 },
23 "last_heartbeat": "2026-01-15T14:30:00Z"
24}

Timeseries данные

bash
1curl -s "https://api.flowlink.io/v1/agents/agent-prod-01/health/timeseries?hours=24&metrics=cpu_percent,ram_percent" \
2 -H "Authorization: Bearer $TOKEN" | jq
json
1{
2 "agent_id": "agent-prod-01",
3 "period": { "from": "2026-01-14T14:30:00Z", "to": "2026-01-15T14:30:00Z" },
4 "resolution": "1m",
5 "metrics": {
6 "cpu_percent": [
7 { "timestamp": "2026-01-15T14:00:00Z", "value": 22.1 },
8 { "timestamp": "2026-01-15T14:01:00Z", "value": 23.5 },
9 { "timestamp": "2026-01-15T14:02:00Z", "value": 21.8 }
10 ],
11 "ram_percent": [
12 { "timestamp": "2026-01-15T14:00:00Z", "value": 60.8 },
13 { "timestamp": "2026-01-15T14:01:00Z", "value": 61.2 },
14 { "timestamp": "2026-01-15T14:02:00Z", "value": 61.5 }
15 ]
16 }
17}

Алерты

При переходе статуса здоровья генерируется алерт с детальной информацией. Алерты отправляются через настроенные каналы: Telegram, email, webhook.

json
1{
2 "alert_type": "agent_health_change",
3 "agent_id": "agent-prod-02",
4 "previous_status": "healthy",
5 "current_status": "degraded",
6 "reasons": ["cpu_percent > 80% (87.3%)", "ram_percent > 85% (91.5%)"],
7 "metrics_snapshot": {
8 "cpu_percent": 87.3,
9 "ram_percent": 91.5,
10 "disk_percent": 72.1,
11 "load_avg_1m": 4.87
12 },
13 "recommendations": [
14 "Check for memory leaks",
15 "Review running processes",
16 "Consider scaling resources"
17 ],
18 "timestamp": "2026-01-15T14:30:00Z"
19}

Auto-recovery

Auto-recovery автоматически выполняет предопределённые действия при переходе агента в degraded или critical статус. Действия настраиваются и требуют явного включения.

yaml
1# Конфигурация auto-recovery
2auto_recovery:
3 enabled: true
4
5 # Действия при degraded
6 degraded:
7 - action: "notify"
8 channel: "telegram"
9 - action: "log_rotate"
10 condition: "disk_percent > 85"
11 - action: "restart_services"
12 condition: "error_rate > 10"
13 services: ["nginx", "node-app"]
14
15 # Действия при critical
16 critical:
17 - action: "notify"
18 channel: ["telegram", "email"]
19 - action: "restart_agent"
20 max_attempts: 3
21 - action: "drain_connections"
22 condition: "open_connections > 1000"
23 - action: "escalate"
24 channel: "pagerduty"

Prometheus

bash
1# Базовые метрики на /metrics endpoint
2curl -s "https://api.flowlink.io/metrics" | grep flowlink_agent
3
4# flowlink_agent_cpu_percent{agent_id="agent-prod-01"} 23.5
5# flowlink_agent_ram_percent{agent_id="agent-prod-01"} 61.2
6# flowlink_agent_disk_percent{agent_id="agent-prod-01"} 45.8
7# flowlink_agent_status{agent_id="agent-prod-01",status="healthy"} 1
8# flowlink_agent_uptime_seconds{agent_id="agent-prod-01"} 345600
yaml
1# Prometheus scrape config
2scrape_configs:
3 - job_name: 'flowlink-agents'
4 scrape_interval: 15s
5 static_configs:
6 - targets: ['flowlink-relay:9090']
7 metrics_path: '/metrics'

Устранение неполадок

Агент показывает offline, но запущен

Проверьте сетевое соединение до Relay. Убедитесь что heartbeat_interval_seconds < offline_threshold_seconds. Проверьте логи агента на ошибки отправки.

Метрики обновляются редко

Уменьшите heartbeat_interval_seconds. Проверьте что агент не throttled. При большом количестве агентов (> 100) рекомендуется интервал 30 секунд.

Ложные critical алерты

Проверьте пороги в конфигурации. Если агент стабильно работает на высокой нагрузке, увеличьте пороги degraded/critical. Используйте кастомные пороги для конкретных агентов.

Лучшие практики

Настройте пороги под нагрузку

Агенты с высокой базовой нагрузкой (database servers) требуют повышенных порогов. Не используйте дефолтные значения для всех агентов.

Интегрируйте с Prometheus/Grafana

Экспорт /metrics endpoint в Prometheus позволяет строить кастомные дашборды и настраивать alerting правила в Grafana.

Включите auto-recovery для production

Auto-recovery автоматически реагирует на degradation. Начните с notify-only и постепенно добавляйте действия.

Мониторьте сам Relay

Убедитесь что Relay сервер тоже мониторится. Добавьте health check для Relay в вашу monitoring систему.

Edit this page