---
# System prepended metadata

title: Отправка информации по каналам в КАФКУ
tags: [PFR, ' NOC', SOVA, guide]

---

---
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 }} | Устройство на котором зарегистрирована авария     |
|  &gt; id                  | String               | Managed Object's ID  |
|  &gt; object_profile      | Object {{ complex }} | Managed Object Profile     |
|  &gt; &gt; id             | String               | Managed Object Profile's ID   |
|  &gt; &gt; name           | String               | Managed Object Profile's Name   |
| alarm_class               | Object {{ complex }} | Класс (тип) аварии |
|  &gt; id                  | String               | Идентификатор класса аварии|
|  &gt; 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'}

```