--- robots: noindex, nofollow tags: guide, NOC --- # Отправка информации по каналам в КАФКУ Передача информации по каналу через `Kafka`. Для внешней системы передаётся следующая информация: 1. Метрики канала 2. Аварийные события на канале ### Идентификация канала Канал описывается адресом `CE` в поле с метаданными сообщения `labels` в пространстве `ce_address`: `ce_address::10.212.72.25` Класс трафика передаётся в поле с метаданными сообщения `labels` в пространстве `traffic_class`: `traffic_class::class1`. Если данные не принадлежат какому-либо классу, метаданные будут отсутствовать. Обозначение классов трафика: | Класс трафика | Обозначение | | --- | ---| | Класс 1 | class1 | | Класс 2 | class2 | | Класс 3 | - | ## Метрики Метрики канала представлены двумя типами сообщений: * Метрики `SLA` - метрики канала снятые с SLA пробы * Метрики интерфейса `CE` - метрики канала снятые с пограничного интерфейса `CE` В случае если устройство `CE` недоступно для опроса, метрики по нему отправляться не будут. Недоступность можно фиксировать по аварийным сообщениям. ### Формат сообщения Interface Сообщение содержит объект `JSON` | Имя | Тип | Описание | | --------------- | ---- | ---- | | ts | DateTime | ISO 8601 timestamp (например `YYYY-MM-DDTHH:MM:SS`) | | scope | Строка (`Interface`) | | | labels | Метаданные | | | interface_load_in_rate | Число (кбит/с) | Текущая загрузка канала | | interface_load_out_rate | Число (кбит/с) | Текущая ихсходящая загрузка канала | | interface_bandwith | Число (кбит/с) | Максимальная пропускная способности канала связи | | interface_load_in_ratio | Число (проценты) | Число | Коэффициент загрузки канала | | interface_oper_status | Число (1/0) | Состояние интерфейсов подключения | ```json { "scope": "Interface", "ts": "2023-04-18T05:15:59", "labels": ["ce_address::10.212.72.25"], "interface_load_in_rate": 10, "interface_bandwidth": 2048, "interface_load_in_ratio": 745, "interface_oper_status": 1, } ``` ### Формат сообщения SLA Тип сообщения описывается полем `scope` в сообщении. | Имя | Тип | Описание | | --------------- | ---- | ---- | | ts | DateTime | ISO 8601 timestamp (например `YYYY-MM-DDTHH:MM:SS`) | | scope | Строка (`SCOPE`) | | | labels | Метаданные | | | sla_packets | Число (пакеты) | Количество переданных тестовых пакетов | | packet_loss_ratio | Число (проценты) | Потери пакетов в прямом и обратном направлении | | owl_out_max | Число (миллисекунды) | Односторонняя задержка пакетов в прямом направлении (Максимальная) | | owl_in_max | Число (миллисекунды) | Односторонняя задержка пакетов в обратном направлении (Максимальная) | | rtt_min | Число (миллисекунды) | Круговая задержка пакетов (Минимальная) | | rtt_max | Число (миллисекунды) | Круговая задержка пакетов (Максимальная) | | jitter_avg | Число (миллисекунды) | Вариативность односторонней задержки (средняя) | | jitter_out_avg | Число (миллисекунды) | Вариативность односторонней задержки в прямом направлении (средняя) | | jitter_in_avg | Число (миллисекунды) | Вариативность односторонней задержки в обратном направлении (Средняя) | Если метрика для данного канала недоступна, в сообщении значение - `null`. Пример ```json { "scope": "SLA", "ts": "2023-04-18T05:15:59", "sla_packets": 10, "labels": ["ce_address::10.212.72.25", "traffic_class::class1"], "packet_loss_ratio": 0, "owl_out_max": 3, "owl_in_max": 6, "jitter_avg": 2, "jitter_out_avg": null, "jitter_in_avg": 5, } ``` ## Аварии Представлены двумя типами аварий: * Аварии недоступности CE. Обозначается классом аварии (alarm_class) `'NOC | Managed Object | Ping Failed'` * Аварии нарушения порогов. Обозначается классом аварии `'Metric | SLA | OneWayLatency` Формат сообщения об аварии | Name | Type | Description | | ------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------- | | id | String | Alarm Id | | `$changeid` | String | DataStream [Change ID](../../../dev/api/datastream/index.md#change-id) | | timestamp | String | ISO 8601 отметка времени (i.e. YYYY-MM-DDTHH:MM:SS) возникновения аварии | | clear_timestamp | String | ISO 8601 отметка времени (i.e. YYYY-MM-DDTHH:MM:SS) закрытия аварии (есть только если авария была закрыта) | | severity | Integer | Важность | | root | String | Идентификатор первопричины аварии | | object | Object {{ complex }} | Устройство на котором зарегистрирована авария | | > id | String | Managed Object's ID | | > object_profile | Object {{ complex }} | Managed Object Profile | | > > id | String | Managed Object Profile's ID | | > > name | String | Managed Object Profile's Name | | alarm_class | Object {{ complex }} | Класс (тип) аварии | | > id | String | Идентификатор класса аварии| | > name | String | Имя класса (типа) аварии | | vars | Object {{ complex }} | Переменные аварии в формате ключ-значение | | reopens | Integer | Число переоткрытий аварии | | labels | Array String | Метки аварии | ### Пример сообщения по недоступности CE ```json {'id': '643e0dfef9f3e959ffba87e2', '$version': 1, 'timestamp': '2023-04-18T06:26:51', 'severity': 4666, 'reopens': 0, 'labels': ["ce_address::10.212.72.25"], 'tags': [], 'clear_timestamp': '2023-04-18T06:26:51', 'managed_object': {'id': '2000', 'name': '19-138476', 'object_profile': {'id': '3', 'name': 'pfr.main'}}, 'alarm_class': {'id': '602ed9ddedf26ece540de41b', 'name': 'NOC | Managed Object | Ping Failed'}, 'vars': {}'}, 'direct_services': [], 'total_services': [], 'direct_subscribers': [], 'total_subscribers': [], '$changeid': '643e0dfed8a372aa6268b04a'} ``` ### Пример сообщений нарушения порогов ```json {'id': '643e3e31848e05a3a5cf664f', '$version': 1, 'timestamp': '2023-04-18T09:51:51.913000', 'severity': 5001, 'reopens': 0, 'labels': ["ce_address::10.212.72.25"], 'tags': [], 'managed_object': {'id': '6414', 'name': '21-071081', 'object_profile': {'id': '4', 'name': 'pfr.reserved'}}, 'alarm_class': {'id': '611b90b193438360a4677a9f', 'name': 'Metric | SLA | OneWayLatency'}, 'vars': {'ovalue': 160000.0, 'tvalue': 150000, 'rule': '641436b555d877a40280023c', 'action': '64142b12202ee47285b0c023', 'sla_probe': 7643067312676170180}, 'direct_services': [], 'total_services': [], 'direct_subscribers': [], 'total_subscribers': [], 'change_id': '643e4f1973a43f6b286d1a26', '$changeid': '643e4f1973a43f6b286d1a26'} ```