Мониторинг ePDG [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:epdg:monitoring [2026/04/30 08:48] elena.krasnobryzhdpi:epdg:monitoring [2026/05/07 09:10] (текущий) elena.krasnobryzh
Строка 4: Строка 4:
 ===== Комплексная система мониторинга шлюза VoWiFi (ePDG) ===== ===== Комплексная система мониторинга шлюза VoWiFi (ePDG) =====
  
-===== 1. Обзор решения =====+===== Обзор решения =====
  
 Система мониторинга VAS Experts ePDG Monitoring обеспечивает полный операционный контроль компонента **fast-epdg** — шлюза VoWiFi (Voice over WiFi), работающего согласно 3GPP TS 29.273 и TS 24.302. Шлюз обеспечивает защищённую передачу голосового и пакетного трафика через недоверенные каналы Wi-Fi с IPSec/IKEv2 туннелированием и интеграцию с EPC-ядром через интерфейсы SWu, SWm, SWx, S2b, S6b. Система мониторинга VAS Experts ePDG Monitoring обеспечивает полный операционный контроль компонента **fast-epdg** — шлюза VoWiFi (Voice over WiFi), работающего согласно 3GPP TS 29.273 и TS 24.302. Шлюз обеспечивает защищённую передачу голосового и пакетного трафика через недоверенные каналы Wi-Fi с IPSec/IKEv2 туннелированием и интеграцию с EPC-ядром через интерфейсы SWu, SWm, SWx, S2b, S6b.
Строка 18: Строка 18:
   * **Покрытие всего стека SWu → S2b** — IKEv2 (SWu), Diameter SWm/SWx/S6b, GTPv2-C (S2b) и GTP-U data plane — в одном месте. 33 метрики суммарно, покрывают control plane и data plane.   * **Покрытие всего стека SWu → S2b** — IKEv2 (SWu), Diameter SWm/SWx/S6b, GTPv2-C (S2b) и GTP-U data plane — в одном месте. 33 метрики суммарно, покрывают control plane и data plane.
  
-===== 2. Архитектура системы мониторинга ===== 
- 
-<mermaid> 
-flowchart TB 
-    subgraph DataPlane["Data Plane"] 
-        IPSEC["IPSec ESP<br/>IKEv2 SA / Child SA<br/>Kernel xfrm"] 
-        GTPU["GTP-U Tunneller<br/>S2b Data<br/>ePDG ↔ PGW"] 
-    end 
- 
-    subgraph ControlPlane["Control Plane"] 
-        IKE["IKEv2 SWu<br/>EAP-AKA' auth"] 
-        DIAM["Diameter Client<br/>SWx/SWm/S6b"] 
-        GTPC["GTPv2-C S2b<br/>to PGW/SMF"] 
-        CTRL["ePDG Controller<br/>Attach/Detach FSM"] 
-    end 
- 
-    subgraph Collection["Сбор метрик"] 
-        PROMEXP["fast-epdg<br/>/metrics endpoint<br/>:9817"] 
-    end 
- 
-    subgraph Storage["Хранение"] 
-        PROM["Prometheus<br/>TSDB<br/>15-day retention"] 
-    end 
- 
-    subgraph Visualization["Визуализация"] 
-        GRAF["Grafana<br/>4 дашборда, 35+ панелей"] 
-    end 
- 
-    subgraph Alerting["Сигнализация"] 
-        AM["Alertmanager<br/>Routing / Inhibition"] 
-        EMAIL["Email SMTP"] 
-        SNMPGW["SNMP Trap Sender<br/>Webhook → Trap gateway"] 
-        NMS["Внешняя NMS<br/>SNMP v2c UDP/162"] 
-        WH["Webhooks<br/>Telegram / PagerDuty"] 
-    end 
- 
-    IKE --> PROMEXP 
-    IPSEC --> PROMEXP 
-    GTPC --> PROMEXP 
-    GTPU --> PROMEXP 
-    DIAM --> PROMEXP 
-    CTRL --> PROMEXP 
- 
-    PROMEXP --> PROM 
-    PROM --> GRAF 
-    PROM --> AM 
- 
-    AM --> EMAIL 
-    AM --> SNMPGW 
-    SNMPGW --> NMS 
-    AM --> WH 
-</mermaid> 
  
 ==== Четырёхуровневая архитектура мониторинга ==== ==== Четырёхуровневая архитектура мониторинга ====
Строка 79: Строка 27:
 | **Сигнализация** (Alerting)      | Alertmanager + SNMP Trap Sender             | PromQL rules → webhook → SNMP v2c trap                | | **Сигнализация** (Alerting)      | Alertmanager + SNMP Trap Sender             | PromQL rules → webhook → SNMP v2c trap                |
  
- 
-===== 3. Компоненты и метрики ===== 
- 
-==== Покрытие мониторингом ==== 
- 
-<mermaid> 
-flowchart LR 
-    EXP["fast-epdg<br/>/metrics :9817"] 
- 
-    EXP --> CFG["Config<br/>2 метрики"] 
-    EXP --> NET["Network<br/>1 метрика"] 
-    EXP --> PROTO["Protocols L5-L7<br/>15 метрик"] 
-    EXP --> SVC["Service KPI<br/>4 метрики"] 
-    EXP --> SESS["Session State<br/>4 метрики"] 
-    EXP --> APP["Application<br/>3 метрики"] 
-    EXP --> SYS["System<br/>4 метрики"] 
- 
-    PROTO --> IKEV2["IKEv2<br/>SWu — 3"] 
-    PROTO --> GTPC["GTPv2-C<br/>S2b — 4"] 
-    PROTO --> GTPU["GTP-U<br/>S2b data — 3"] 
-    PROTO --> DIA["Diameter<br/>SWm/SWx/S6b — 5"] 
-</mermaid> 
  
 ==== Количественный обзор по категориям ==== ==== Количественный обзор по категориям ====
Строка 117: Строка 43:
 | **Итого** | **33 метрики** |  |  | | **Итого** | **33 метрики** |  |  |
  
-==== Принципы именования ==== 
- 
-Все метрики имеют префикс ''epdg_'' и организованы по иерархии: 
- 
-<code> 
-epdg_ 
-├── config_*           # Конфигурация 
-├── network_*          # Сетевой уровень 
-├── ikev2_*            # SWu (IKEv2/IPSec) 
-├── gtp_*              # S2b control-plane GTPv2-C 
-├── gtpu_*             # S2b data-plane GTP-U 
-├── diameter_*         # SWm/SWx/S6b 
-├── service_*          # KPI сервисов (attach, availability, uptime) 
-├── session_*          # Состояние сессий (IKE SA, Child SA, GTP, subscribers) 
-├── app_*              # Метрики приложения (memory, threads, logs) 
-└── system_*           # Системные метрики (CPU, disk, network) 
-</code> 
- 
-===== 4. Перечень метрик ===== 
- 
-Все метрики экспортируются через единый ''/metrics'' endpoint в текстовом формате Prometheus. Именование следует правилам Prometheus: ''epdg_<группа>_<имя>[_unit]'', тип Counter имеет суффикс ''_total'', Histogram — суффикс ''_seconds'' / ''_bytes''. 
- 
-==== 4.1 Config (2) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_config_status'' | Gauge | Статус конфигурации компонента (0=error, 1=ok) | 
-| ''epdg_config_reload_total'' | Counter | Счётчик конфигурационных загрузок (success/failure) | 
- 
-==== 4.2 Network (1) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_network_connection_status'' | Gauge | Статус TCP/UDP-соединения к узлу (0=down, 1=up) — применяется к PGW (S2b), AAA (SWm), HSS (SWx) | 
- 
-==== 4.3 IKEv2 SWu (3) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_ikev2_messages_total'' | Counter | Счётчик IKEv2 сообщений (IKE_SA_INIT / IKE_AUTH / CREATE_CHILD_SA / INFORMATIONAL) | 
-| ''epdg_ikev2_request_duration_seconds'' | Histogram | Распределение времени ответа на запросы IKEv2  | 
-| ''epdg_ikev2_errors_total'' | Counter | IKEv2 ошибки (NO_PROPOSAL_CHOSEN, AUTHENTICATION_FAILED, INVALID_SYNTAX и т.д.) | 
- 
-==== 4.4 GTPv2-C S2b (4) ==== 
- 
-^ Имя                                    ^ Тип        ^ Назначение                                              ^ 
-| ''epdg_gtp_messages_total''            | Counter    | Сообщения GTPv2-C (Create/Modify/Delete Session, Echo)  | 
-| ''epdg_gtp_request_duration_seconds''  | Histogram  | Время ожидания запрос → ответ                                | 
-| ''epdg_gtp_errors_total''              | Counter    | GTP-C ошибки по Cause Code                              | 
-| ''epdg_gtp_retransmissions_total''     | Counter    | Перенаправление GTP-C запросов                          | 
- 
-==== 4.5 GTP-U data plane (3) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_gtpu_packets_total'' | Counter | Пакеты через GTP-U туннель (uplink/downlink) | 
-| ''epdg_gtpu_bytes_total'' | Counter | Байты через GTP-U туннель | 
-| ''epdg_gtpu_errors_total'' | Counter | Ошибки туннелирования (TEID mismatch, decap fail) | 
- 
-==== 4.6 Diameter SWm/SWx/S6b (5) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_diameter_messages_total'' | Counter | DER/DEA (SWm), MAR/MAA (SWx), AAR/AAA (S6b), STR/STA | 
-| ''epdg_diameter_request_duration_seconds'' | Histogram | Время ожидания запрос → ответ по Diameter | 
-| ''epdg_diameter_errors_total'' | Counter | Ошибки по Experimental-Result-Code | 
-| ''epdg_diameter_watchdog_status'' | Gauge | Статус DWR/DWA watchdog до узла (0=timeout, 1=ok) | 
-| ''epdg_diameter_connection_status'' | Gauge | Статус соединения по Diameter до узла (0=disconnected, 1=connected) | 
- 
-==== 4.7 Service KPI (4) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_service_attach_total'' | Counter | Попытки соединения (success/failure) по APN | 
-| ''epdg_service_attach_duration_seconds'' | Histogram | Длительность соединения (IKE_SA_INIT → session ready) | 
-| ''epdg_service_availability'' | Gauge | Флаг доступности (0=down, 1=up) | 
-| ''epdg_service_uptime_seconds'' | Gauge | Время доступности сервиса | 
- 
-==== 4.8 Session State (4) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_session_ike_sa_total'' | Gauge | Активные IKE SA | 
-| ''epdg_session_child_sa_total'' | Gauge | Активные Child SA (IPSec tunnels) | 
-| ''epdg_session_gtp_sessions_total'' | Gauge | Активные GTP-C сессии на S2b | 
-| ''epdg_session_subscribers_total'' | Gauge | Уникальные абоненты (подключённые UE) | 
- 
-==== 4.9 Application (3) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_app_threads_total'' | Gauge | Общее число рабочих потоков | 
-| ''epdg_app_memory_bytes'' | Gauge | Память процесса по типам | 
-| ''epdg_app_log_messages_total'' | Counter | Лог-сообщения по уровням (debug/info/warn/error/fatal) | 
- 
-==== 4.10 System (4) ==== 
- 
-^ Имя ^ Тип ^ Назначение ^ 
-| ''epdg_system_cpu_usage_percent'' | Gauge | Загрузка CPU | 
-| ''epdg_system_memory_bytes'' | Gauge | Системная память | 
-| ''epdg_system_disk_bytes'' | Gauge | Дисковое пространство | 
-| ''epdg_system_open_fds'' | Gauge | Открытые описания файлов | 
- 
-==== Типы метрик (напоминание) ==== 
- 
-^ Тип ^ Назначение ^ 
-| **Counter** | Монотонно растущий счётчик (сообщения, ошибки, перезагрузки) | 
-| **Gauge** | Текущее значение (активные сессии, память, статус) | 
-| **Histogram** | Распределение значений с автоматическими срезами по интервалам (длительность, время жизни) | 
- 
-===== 5. Интерфейсы интеграции ===== 
- 
-<mermaid> 
-flowchart LR 
-    CORE["VAS Experts<br/>ePDG Monitoring"] 
- 
-    CORE --> P["Prometheus<br/>CNCF / OpenMetrics"] 
-    CORE --> S["SNMP v2c<br/>EPDG-MIB"] 
-    CORE --> G["Grafana<br/>JSON Provisioning"] 
-    CORE --> W["Webhooks<br/>ChatOps"] 
-    CORE --> AM["Alertmanager<br/>Routing"] 
- 
-    P --> P1["Cloud-native NMS<br/>Thanos / Cortex / Mimir"] 
-    S --> S1["Legacy NMS<br/>HP OpenView, NetAct<br/>IBM Tivoli"] 
-    G --> G1["NOC Wall Displays<br/>Drill-down Analytics"] 
-    W --> W1["Telegram / Slack<br/>PagerDuty / OpsGenie"] 
-    AM --> AM1["Smart routing<br/>Severity-based"] 
-</mermaid> 
- 
-==== 5.1 Prometheus (CNCF Standard) ==== 
- 
-Нативный ''/metrics'' endpoint на порту **9817** встроен в fast-epdg. Формат — стандартный текстовый формат Prometheus v0.0.4 (совместим с OpenMetrics). Поддерживается объединение для агрегации с центральным Prometheus оператора; поддержка команды remote_write для долгосрочного хранения в Thanos, Cortex, Grafana Mimir. 
- 
-==== 5.2 SNMP v2c — EPDG-MIB ==== 
- 
-**47 OID** покрывают SMI-аналог Prometheus-метрик + **14 trap notifications** (с парами raise/clear согласно RFC 3877 ALARM-MIB). Совместимость с HP OpenView, IBM Tivoli NetCool, Nokia NetAct, Huawei U2000. 
- 
-<mermaid> 
-flowchart TB 
-    IANA["IANA PEN<br/>enterprises<br/>.1.3.6.1.4.1"] 
-    VAS["VAS Experts<br/>.1.3.6.1.4.1.43823<br/>(vas.expert)"] 
-    EPDG["EPDG-MIB<br/>.43823.1"] 
-    EPC["EPC Monitoring<br/>.43823.100"] 
- 
-    IANA --> VAS 
-    VAS --> EPDG 
-    VAS --> EPC 
- 
-    EPDG --> OBJ["epdgObjects<br/>.43823.1.1"] 
-    EPDG --> NOTIF["epdgNotifications<br/>.43823.1.2<br/>14 trap types"] 
-    EPDG --> CONF["epdgConformance<br/>.43823.1.3"] 
- 
-    OBJ --> SERVICE["service .1.1.1<br/>4 OID"] 
-    OBJ --> IKE["ikev2 .1.1.2<br/>6 OID"] 
-    OBJ --> GTP["gtp .1.1.3<br/>8 OID"] 
-    OBJ --> DIAM["diameter .1.1.4<br/>7 OID"] 
-    OBJ --> SESS["sessions .1.1.5<br/>8 OID"] 
-    OBJ --> SYS["system .1.1.6<br/>8 OID"] 
-    OBJ --> NET["network .1.1.7<br/>6 OID"] 
- 
-    NOTIF --> TRAPAGR["7 raise / 7 clear<br/>pairs"] 
-</mermaid> 
- 
-Примеры SNMP-запросов: 
- 
-<code bash> 
-# Все дерево ePDG 
-snmpwalk -v2c -c public <host> .1.3.6.1.4.1.43823.1 
- 
-# Service availability (Gauge 0..1) 
-snmpget -v2c -c public <host> .1.3.6.1.4.1.43823.1.1.1.1.0 
-</code> 
- 
- 
-==== 5.3 Grafana ==== 
- 
-**4 поддерживающих JSON дашборда** (35+ панелей суммарно): 
-  * **ePDG Overview** — доступность, KPI соединений, сессии, состояние интерфейсов 
-  * **IKEv2 Details** — сообщения, производительность, ошибки, жизненный цикл IKE SA 
-  * **GTP Details** — GTPv2-C + GTP-U данные по PGW узлам 
-  * **Diameter Details** — сообщения по приложениям, задержки, watchdog 
- 
-Автоматическая установка через API, поддерживающее Grafana. Адаптивный дизайн для мониторов состояния центра управления сети (NOC) с автообновлением каждые 15 секунд. 
- 
-==== 5.4 Alertmanager Webhooks ==== 
- 
-Webhook-интерфейс для интеграции с любой системой оповещений: Telegram Bot, Slack, PagerDuty Events API v2, OpsGenie, Microsoft Teams. Отдельный **SNMP Trap Sender** service конвертирует Alertmanager webhooks в SNMP v2c traps с Enterprise OID. 
- 
-===== 6. Система алармов ===== 
  
 ==== Категории алармов ==== ==== Категории алармов ====
Строка 305: Строка 50:
 | **Warning**   | ''ePDG_High_IKEv2_Latency'', ''ePDG_High_GTP_Latency'', ''ePDG_High_IKEv2_Error_Rate'', ''ePDG_High_GTP_Error_Rate'', ''ePDG_High_Memory_Usage'', ''ePDG_High_CPU_Usage'', ''ePDG_Low_Disk_Space'', ''ePDG_High_Error_Log_Rate''  | Деградация производительности, аномалии ресурсов                  | Email. Повтор раз в 4 часа. Подавляется при наличии Critical на том же компоненте  | | **Warning**   | ''ePDG_High_IKEv2_Latency'', ''ePDG_High_GTP_Latency'', ''ePDG_High_IKEv2_Error_Rate'', ''ePDG_High_GTP_Error_Rate'', ''ePDG_High_Memory_Usage'', ''ePDG_High_CPU_Usage'', ''ePDG_Low_Disk_Space'', ''ePDG_High_Error_Log_Rate''  | Деградация производительности, аномалии ресурсов                  | Email. Повтор раз в 4 часа. Подавляется при наличии Critical на том же компоненте  |
  
-==== Полный перечень алармов (20+ правил) ==== 
- 
-<mermaid> 
-flowchart LR 
-    AL["ePDG Alert Rules<br/>20+"] 
- 
-    AL --> CR["Critical<br/>5 rules"] 
-    AL --> WR["Warning<br/>8 rules"] 
-    AL --> INFO["Recording<br/>34 rules"] 
- 
-    CR --> C1["Service_Down<br/>availability == 0"] 
-    CR --> C2["Attach_Failure_Rate<br/>> 10%"] 
-    CR --> C3["PGW_Unreachable<br/>connection_status{s2b} == 0"] 
-    CR --> C4["AAA_Unreachable<br/>connection_status{swm} == 0"] 
-    CR --> C5["Diameter_Watchdog_Timeout<br/>watchdog_status == 0"] 
- 
-    WR --> W1["High_IKEv2_Latency<br/>p95 > 1.0 s"] 
-    WR --> W2["High_GTP_Latency<br/>p95 > 0.5 s"] 
-    WR --> W3["High_IKEv2_Error_Rate<br/>> 5%"] 
-    WR --> W4["High_GTP_Error_Rate<br/>> 5%"] 
-    WR --> W5["High_Memory_Usage<br/>> 80%"] 
-    WR --> W6["High_CPU_Usage<br/>> 80%"] 
-    WR --> W7["Low_Disk_Space<br/>< 10%"] 
-    WR --> W8["High_Error_Log_Rate<br/>> 10/s"] 
- 
-    INFO --> I1["attach_success_rate<br/>preaggregated"] 
-    INFO --> I2["p95_p99_latency<br/>preaggregated"] 
-    INFO --> I3["throughput<br/>preaggregated"] 
-</mermaid> 
- 
-==== Процесс обработки алармов ==== 
- 
-<mermaid> 
-sequenceDiagram 
-    participant M as Метрика (Prometheus) 
-    participant R as Alert Rule (PromQL) 
-    participant AM as Alertmanager 
-    participant E as Email (SMTP) 
-    participant SG as SNMP Trap Gateway 
-    participant NMS as Внешняя NMS 
-    participant W as Webhook (ChatOps) 
- 
-    M->>R: Значение превышает порог 
-    R->>R: Ожидание (for: 1-10 мин) 
-    R->>AM: Alert FIRING 
-    AM->>AM: Group by [alertname, component] 
-    AM->>AM: Inhibition check (critical подавляет warning) 
- 
-    alt severity = critical 
-        AM->>E: Email [CRITICAL] 
-        AM->>SG: Webhook → SNMP Trap 
-        SG->>NMS: SNMP v2c Trap (OID .1.3.6.1.4.1.43823.1.2.X) 
-        AM->>W: Webhook (Telegram / PagerDuty) 
-    else severity = warning 
-        AM->>E: Email [WARNING] 
-    end 
- 
-    Note over M,R: Метрика возвращается в норму 
-    R->>AM: Alert RESOLVED 
-    R->>SG: clear-trap (paired notification) 
-    AM->>E: Email [RESOLVED] 
-</mermaid> 
- 
-==== Особенности ==== 
- 
-  * **Inhibition**: Critical-алармы автоматически подавляют Warning для того же компонента 
-  * **Grouping**: Алармы группируются по ''alertname'' + ''component'' с 30-секундным окном 
-  * **Dead time / Hysteresis**: параметр ''for'' от 1 до 10 минут предотвращает ложные срабатывания 
-  * **Trap pairing**: raise/clear одновременных событий для соответствия RFC 3877 ALARM-MIB 
- 
- 
-===== 7. Визуализация и операционные дашборды ===== 
- 
-==== Состав дашбордов ==== 
- 
-^ Дашборд ^ Панели ^ Назначение ^ 
-| **ePDG Overview** | 10 | Доступность сервиса, коэффициент успешного подключения, количество активных сеансов, состояние SWu/SWm/S2b, пропускная способность по интерфейсам | 
-| **IKEv2 Details** | 10 | Сообщения в секунду по типам, гистограмма продолжительности запросов, задержка в 95-м процентиле, ошибки по типам, жизненный цикл IKE SA | 
-| **GTP Details** | 8 | Сообщения GTPv2-C по PGW, повторные передачи, ошибки по коду причины, GTP-U (восходящий/нисходящий канал), несущие | 
-| **Diameter Details** | 7 | Количество сообщений по приложениям (SWm/SWx/S6b), продолжительность запросов, состояние сторожевого таймера, распределение кодов результатов, хронология состояний соединений | 
- 
-==== Дизайн для Центра управления сетью (NOC) ==== 
- 
-<mermaid> 
-flowchart TB 
-    NOC["NOC Dashboard Layer"] 
- 
-    NOC --> OVER["ePDG Overview<br/>KPI Summary"] 
-    NOC --> IKE["IKEv2 Details<br/>Drill-down"] 
-    NOC --> GTP["GTP Details<br/>Drill-down"] 
-    NOC --> DIA["Diameter Details<br/>Drill-down"] 
- 
-    OVER -->|Click attach KPI| IKE 
-    OVER -->|Click session count| GTP 
-    OVER -->|Click peer status| DIA 
-</mermaid> 
- 
-  * **Автообновление**: 15-секундный период обновления 
-  * **Адаптивная цветовая схема**: зелёный → жёлтый → красный по пороговым значениям 
-  * **Drill-down**: от Overview к детализации до компонента 
-  * **Time-range selector**: от 5 минут до 30 дней истории 
-  * **JSON provisioning**: дашборды разворачиваются автоматически 
- 
-===== 8. Интеграция в единый стек EPC Monitoring ===== 
- 
-ePDG мониторинг полностью интегрирован в общий мониторинг пакетного ядра: 
- 
-<mermaid> 
-flowchart TB 
-    subgraph Common["Единый Monitoring Stack"] 
-        PROM["Prometheus"] 
-        GRAF["Grafana"] 
-        AM["Alertmanager"] 
-    end 
- 
-    subgraph Sources["Источники метрик EPC"] 
-        DPI["FastDPI<br/>:9110"] 
-        SMF["SMF /metrics<br/>:9090"] 
-        PCEF["fast-pcef /metrics<br/>:9090"] 
-        PCRF["FastPCRF"] 
-        EPDG["fast-epdg<br/>:9817"] 
-    end 
- 
-    DPI --> PROM 
-    SMF --> PROM 
-    PCEF --> PROM 
-    PCRF --> PROM 
-    EPDG --> PROM 
- 
-    PROM --> GRAF 
-    PROM --> AM 
-</mermaid> 
- 
-Оператор NOC видит **все компоненты EPC** (DPI, SMF, PCEF, FastPCRF, ePDG) в одном интерфейсе Grafana, с единой системой алармов и маршрутизации уведомлений через один Alertmanager. 
- 
-===== 9. Покрытие метрик по уровням OSI ===== 
- 
-<mermaid> 
-graph LR 
-    L1["L1 Physical<br/>NIC counters via system"] 
-    L2["L2 Data Link<br/>MAC, VLAN"] 
-    L3["L3 Network<br/>IP, IPSec ESP, GTP-U"] 
-    L4["L4 Transport<br/>TCP/UDP/SCTP"] 
-    L5["L5 Session<br/>GTPv2-C, IKEv2"] 
-    L6["L6 Presentation<br/>IKEv2/IPSec encryption, EAP-AKA'"] 
-    L7["L7 Application<br/>Diameter, service bearer ops"] 
-    Operations["Operations<br/>KPI, SLA, Capacity"] 
-    CX["CX Level<br/>Subscriber Experience"] 
- 
-    L1 --> L2 --> L3 --> L4 --> L5 --> L6 --> L7 --> Operations --> CX 
- 
-    style L1 fill:#e74c3c,color:#fff 
-    style L2 fill:#e67e22,color:#fff 
-    style L3 fill:#f39c12,color:#fff 
-    style L4 fill:#2ecc71,color:#fff 
-    style L5 fill:#1abc9c,color:#fff 
-    style L6 fill:#3498db,color:#fff 
-    style L7 fill:#9b59b6,color:#fff 
-    style Operations fill:#34495e,color:#fff 
-    style CX fill:#2c3e50,color:#fff 
-</mermaid> 
- 
-==== Детализация метрик по уровням ==== 
-Модель OSI: 
- 
-^ Уровень                         ^ Метрики  ^ Примеры                                                                                                                                                 ^ 
-| **L1/L2 Physical / Data Link**  | —        | Покрывается отдельным node_exporter / аналогом на уровне ОС (не входит в перечень метрик ePDG)                                                          | 
-| **L3 Network / IPSec tunnels**  | 3        | ''epdg_gtpu_packets_total'', ''epdg_gtpu_bytes_total'', ''epdg_gtpu_errors_total'' — GTP-U data plane                                                   | 
-| **L4 Transport**                | 1        | ''epdg_network_connection_status'' — TCP к узлам(PGW/AAA/HSS)                                                                                           | 
-| **L5 Session**                  | 3        | ''epdg_session_ike_sa_total'', ''epdg_session_child_sa_total'', ''epdg_session_gtp_sessions_total''                                                     | 
-| **L6 Presentation/Security**    | 3        | ''epdg_ikev2_messages_total'', ''epdg_ikev2_request_duration_seconds'', ''epdg_ikev2_errors_total'' — IKEv2/IPSec шифрование и EAP-AKA' аутентификация  | 
-| **L7 Application**              | 9        | ''epdg_diameter_*'' (SWm/SWx/S6b, 5 метрик), ''epdg_gtp_*'' (GTPv2-C, 4 метрики)                                                                        | 
- 
-Операторский уровень: 
-^ Уровень ^ Метрики ^ Примеры ^ 
-| **Operations** | 11 | ''epdg_service_availability'', ''epdg_service_uptime_seconds'', ''epdg_app_*'' (3), ''epdg_system_*'' (4), ''epdg_config_*'' (2) | 
-| **Customer Experience** | 3 | ''epdg_service_attach_duration_seconds'' p95, ''epdg_service_attach_total'' (success rate), ''epdg_ikev2_request_duration_seconds'' p99 | 
- 
-==== Уровень 9: Качество восприятия сервиса VoWiFi ==== 
- 
-^ QoE-индикатор                   ^ Метрики-источники                                              ^ Интерпретация                                                       ^ 
-| **Время подключения VoWiFi**    | ''epdg_service_attach_duration_seconds'' p95                   | > 3 сек — абонент замечает задержку при переключении на WiFi        | 
-| **Непрерывность сервиса**       | ''epdg_session_ike_sa_total'' delta                            | Массовый сброс > 50 IKE SA = проблема доступности                   | 
-| **Успешность аутентификации**   | ''ePDG_High_Attach_Failure_Rate'' alert rate                   | > 5% = проблема с HSS/AAA узлами                                    | 
-| **Задержка назначения bearer**  | ''epdg_gtp_request_duration_seconds{msg=create-session}'' p99  | > 500 мс — задержка готовности голосового канала                    | 
-| **Ошибки GTP-U tunnel**         | ''epdg_gtpu_errors_total'' rate / ''epdg_gtpu_packets_total''  | > 0.1% = деградация качества голоса                                 | 
-| **IKEv2-надёжность**            | ''epdg_ikev2_errors_total'' по типам                           | NO_PROPOSAL_CHOSEN / AUTHENTICATION_FAILED — проблемы с certs / UE  | 
- 
- 
-===== 10. Стандарты и совместимость ===== 
- 
-^ Стандарт                          ^ Область                            ^ Применение                                                   ^ 
-| **3GPP TS 29.273**                | SWx/S6b/SWm                        | Методология учёта Diameter-сообщений и результирующих кодов  | 
-| **3GPP TS 24.302**                | SWu (IKEv2)                        | Определение IKEv2 типов сообщений и кодов ошибок             | 
-| **3GPP TS 33.402**                | 3GPP security for non-3GPP access  | Параметры безопасности EAP-AKA' / IKEv2                      | 
-| **3GPP TS 23.402**                | Non-3GPP access architecture       | Структура интерфейсов (SWu/SWm/SWx/S6b/S2b)                  | 
-| **3GPP TS 32.421**                | Performance Measurement            | Методология сбора KPI                                        | 
-| **3GPP TS 32.409**                | Performance measurement charging   | Структура счётчиков                                          | 
-| **IETF RFC 7296**                 | IKEv2                              | Типы сообщений, уведомления об ошибках, состояние SA         | 
-| **IETF RFC 6733**                 | Diameter                           | Command codes, Result-Codes                                  | 
-| **IETF RFC 4187**                 | EAP-AKA                            | Аутентификация через SIM                                     | 
-| **IETF RFC 3877**                 | ALARM MIB                          | Структура Enterprise MIB для алармов                         | 
-| **IETF RFC 3418**                 | SNMPv2 MIB                         | Совместимость SNMP v2c                                       | 
-| **Prometheus Exposition Format**  | Metrics (v0.0.4)                   | Формат экспорта метрик                                       | 
-| **OpenMetrics**                   | CNCF Standard                      | Перспективная совместимость                                  | 
- 
- 
-===== 11. Модель развёртывания ===== 
- 
-<mermaid> 
-flowchart TB 
-    subgraph Host1["Сервер ePDG"] 
-        EPDG["fast-epdg<br/>(VoWiFi gateway)"] 
-        PLUGIN["/metrics endpoint<br/>:9817"] 
-        EPDG -.-> PLUGIN 
-    end 
- 
-    subgraph Host2["Сервер мониторинга"] 
-        PROM["Prometheus"] 
-        GRAF["Grafana"] 
-        AM["Alertmanager"] 
-        SNMPTRAP["SNMP Trap Sender<br/>(webhook gateway)"] 
-        PROM --> GRAF 
-        PROM --> AM 
-        AM --> SNMPTRAP 
-    end 
- 
-    subgraph Host3["Внешние системы"] 
-        NMS["Операторская NMS<br/>(HP OpenView /<br/>NetAct / Tivoli)"] 
-        CHAT["ChatOps<br/>(Telegram / PagerDuty)"] 
-    end 
- 
-    PLUGIN -->|HTTP :9817/metrics| PROM 
-    SNMPTRAP -->|UDP 162| NMS 
-    AM -->|Webhook| CHAT 
-</mermaid> 
- 
-==== Характеристики развёртывания ==== 
- 
-^ Параметр                 ^ Значение                                       ^ 
-| **Metrics footprint**    | Интегрированные (~2 MB memory overhead)        | 
-| **Внешние зависимости**  | Самодостаточный пакет ''fast-epdg'' (rpm)      | 
-| **Управление**           | ''fast-epdg.service'' systemd                  | 
-| **Конфигурация**         | Секция ''monitoring'' в ''fast-epdg.conf''     | 
-| **Обновление**           | Обновление конфигурации без прерывания работы  | 
-| **ОС**                   | Linux (RHEL/CentOS 8+, Ubuntu 22.04+)          | 
-| **Порт**                 | 9817 TCP (listen 0.0.0.0, настраивается)       | 
-| **Время развёртывания**  | < 5 минут (enable plugin в config + restart)   | 
- 
-==== Варианты размещения ==== 
- 
-  * **On-premise** — плагин работает в адресном пространстве fast-epdg, нулевое потребление ресурсов 
-  * **Co-located Prometheus** — Prometheus собирает метрики с приложения, работающего на том же хосте 
-  * **Централизованный** — единый Prometheus собирает со всех ePDG узлов 
- 
-===== 12. Конфигурация экспортёра метрик ===== 
- 
-Секция ''monitoring'' в ''fast-epdg.conf'': 
- 
-<code> 
-monitoring { 
-    enabled = yes 
-    listen_port = 9817 
-    listen_address = 0.0.0.0 
-    update_interval = 10 
-    metrics { 
-        ikev2 = yes 
-        gtp = yes 
-        diameter = yes 
-        service = yes 
-        session = yes 
-        app = yes 
-        system = yes 
-    } 
-} 
-</code> 
- 
-Каждая группа метрик может быть независимо включена/выключена без перекомпиляции.