fix: исправил ASCII-схемы в README — ровные блоки, актуальные названия

- заменил Unicode-рамки на ASCII для корректного отображения
- переименовал Zabbix Sender в Data Exporter
- добавил цепочку JSON files -> Zabbix Agent -> Zabbix Server
- исправил блок-схему цикла: экспорт в файлы вместо отправки
This commit is contained in:
Maksim Totmin 2026-04-08 17:43:33 +07:00
parent 62744d1a43
commit 9aacc861f6

140
README.md
View File

@ -43,26 +43,26 @@
## Архитектура
```
┌──────────────────────────────────────────────────────────────────┐
│ Airflow DAG Monitor │
│ │
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ ┌────────┐ │
│ │ Airflow │───>│ Analyzer │───>│ActionHandler │───>│ Zabbix │ │
│ │ Client │ │ │ │ │ │ Sender │ │
│ └─────────┘ └──────────┘ └──────────────┘ └────────┘ │
│ │ │ │ │
│ v v v │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ State Manager │ │
│ │ (retry counts, alert flags) │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
│ │
v v
┌─────────┐ ┌──────────────┐
│ Airflow │ │Zabbix Server │
│ API │ │ Dashboard │
└─────────┘ └──────────────┘
+------------------------------------------------------------------+
| Airflow DAG Monitor |
| |
| +----------+ +----------+ +--------------+ +----------+ |
| | Airflow |-->| Analyzer |-->| ActionHandler |-->| Data | |
| | Client | | | | | | Exporter | |
| +----------+ +----------+ +--------------+ +----------+ |
| | | | | |
| v v v v |
| +--------------------------------------------------------+ |
| | State Manager | |
| | (retry counts, alert flags) | |
| +--------------------------------------------------------+ |
+------------------------------------------------------------------+
| |
v v
+---------+ +----------+ +---------+ +----------------+
| Airflow | | JSON | | Zabbix | | Zabbix Server |
| API | | files |-->| Agent |-->| Dashboard |
+---------+ +----------+ +---------+ +----------------+
```
---
@ -377,14 +377,14 @@ usage: python -m airflow_monitor [-h] [--config CONFIG] [--discover] [--dry-run]
локальный Zabbix Agent, который уже подключён к серверу (напрямую или через Zabbix Proxy).
```
┌──────────────────┐ файлы ┌──────────────┐ сеть ┌──────────────┐
│ airflow-monitor │ ──────────────> │ Zabbix Agent │ ────────────> │Zabbix Server │
│ (systemd) │ /var/lib/... │ UserParameter│ │ Dashboard │
└──────────────────┘ └──────────────┘ └──────────────┘
или
┌──────────────┐
│ Zabbix Proxy │
└──────────────┘
+------------------+ файлы +--------------+ сеть +----------------+
| airflow-monitor |------------>| Zabbix Agent |------------>| Zabbix Server |
| (systemd) | /var/lib/.. | UserParameter| | Dashboard |
+------------------+ +--------------+ +----------------+
или
+--------------+
| Zabbix Proxy |
+--------------+
```
1. Монитор пишет результаты в файлы `/var/lib/airflow-monitor/`
@ -541,48 +541,48 @@ zabbix_agentd -t airflow.monitor.alive
### Цикл мониторинга
```
┌─────────────────────┐
│ Загрузка состояния │
└──────────┬──────────┘
v
┌─────────────────────────────┐
│ Получение списка DAG-ов │
│ GET /api/v1/dags │
└──────────────┬──────────────┘
v
┌─────────────────────────────┐
│ Для каждого DAG: │
│ GET /api/v1/dags/{id}/runs │
│ (фильтр: running, failed) │
└──────────────┬──────────────┘
v
┌───────────────────────┐
│ Анализ: есть проблемы?│
└───────┬───────┬───────┘
нет │ │ да
v v
┌────┐ ┌──────────────────┐
│Done│ │ Перезапуск (1 раз)│
└────┘ └────────┬─────────┘
v
┌─────────────────────┐
│ Ожидание 2 мин │
└──────────┬──────────┘
v
┌─────────────────────┐
│ Повторная проверка │
└───────┬──────┬──────┘
ОК │ │ Проблема
v v
┌────┐ ┌──────────────────┐
│Done│ │ Алерт в Zabbix │
└────┘ └──────────────────┘
v
┌─────────────────────┐
│ Heartbeat + cleanup │
│ Сохранение состояния │
└─────────────────────┘
+------------------------+
| Загрузка состояния |
+-----------+------------+
v
+----------------------------+
| Получение списка DAG-ов |
| GET /api/v1/dags |
+-----------+----------------+
v
+----------------------------+
| Для каждого DAG: |
| GET /api/v1/dags/{id}/runs |
| (фильтр: running, failed) |
+-----------+----------------+
v
+--------------------+
| Анализ: проблемы? |
+---+------------+---+
нет | | да
v v
+------+ +-----------------+
| Done | | Перезапуск (x1) |
+------+ +--------+--------+
v
+-------------------+
| Ожидание 2 мин |
+--------+----------+
v
+-------------------+
| Повторная проверка |
+----+----------+---+
ОК | | Проблема
v v
+------+ +------------------+
| Done | | Экспорт в файлы |
+------+ | для Zabbix Agent |
+--------+---------+
v
+-------------------+
| Heartbeat+cleanup |
| Сохранение состоян.|
+-------------------+
```
### Обработка ошибок