Go to file
prplV 0ba5ff0e9f
test-org/integration-module/pipeline/pr-rc This commit looks good Details
docs ready
2025-06-25 10:19:42 -04:00
crates for test 2025-06-16 03:27:06 -04:00
.dockerignore for buildings 2025-06-23 03:25:23 -04:00
.env.example + api token + ref 2025-06-11 05:06:46 -04:00
.gitignore + exporter communication example 2025-01-27 14:00:55 +03:00
Cargo.toml prepush refactoring 2025-03-04 15:16:58 +03:00
Dockerfile fixed Dockerfile 2025-06-25 09:43:15 -04:00
Jenkinsfile auto versioning added 2025-04-10 12:11:54 +03:00
README.md docs ready 2025-06-25 10:19:42 -04:00
config_api.json api grub set up 2025-02-14 12:32:30 +03:00
template_global_config.json refactor + async tasks for mods 2025-02-13 12:20:54 +03:00

README.md

Интеграционный модуль для проекта "Буревестник ВКС"

Описание

Интеграционный модуль (ИМ) - Rust-пакет, предоставляющий функционал интеграционного модуля в проекте "Буревестник ВКС", состоящий из бинарных крейтов для:

  • получение данных через API ВКС
  • поддержку хранения, валидации и актуализации собственных конфигураций
  • предобработку полученных данных и сохранение в БД
  • интеграции с еНОД.Мониторинг

Специфика работы

На даннный момент предусмотрено два режима работы:

  1. Нативный - режим работы, производящий прямой опрос сервиса видео-конференц связи Vinteo и соотвествующий процесс ETL

  2. Статичный - режим работы "посредник", когда все метрические данные ВКС Vinteo получаются через REST-Full API средства еНОД.Мониторинг

  3. Системный - аналогичный статичному режиму, но метрические данные (заведомо обогащенные нулевым статусом) отправялются не напрямую в модуль Prometehus exporter, а в Статусную модель

  4. Vinteo - особый режим работы, предполагающий сбор определенного набора метрик напрямую с ВКС Vinteo механизмом многоэтапного API-запроса

Примечание По стандарту ИМ работает в НАТИВНОМ режиме и ожидает конфигурации в формате .json, однако приоритетным считается СТАТИЧНЫЙ режим. Подробная информация о настройке в пункте Руководство

Руководство

В данном разделе опсиан алгоритм настройки, сборки и запуска программного модуля ИМ

Преднастройка

  1. Выбор режима работы модуля, который скорректирует принцип настройки:
Режим работы .env config-api.json $STATUS_SYSTEM_URL $EXPORTER_URL
Нативный
Статичный
Системный
, где:

-- следует настроить (предпринять)

-- игнорируется системой, не стоит настраивать

-- НЕЛЬЗЯ настраивать (предпринимать), возможны ошибки в работе

Режим работы Vinteo не описан в таблице намеренно

Настройка режима работы "Нативный"

Для настройки данного режима необходимо расположить в активной директории конфигурационный config_api.json файл:

{
    "config":  [     
		{
			"id":"zvks", 
			"login" : "",
			"pass" : "",
			"api_key" : "6fe8b0db-62b4-4065-9c1e-441ec4228341.9acec20bd17d7178f332896f8c006452877a22b8627d089105ed39c5baef9711",
			"period" : "",
			"timeout" : "5",
			"metrics" : [
				{
					"name": "conferences", 
					"url": "https://demo.vcs.vinteo.dev/api/v1/conferences",
					"measure": 	[
						{ "id":"number",  "type": "text",  "addr": "data.conferences[].number" },
						{ "id":"total",  "type": "integer",  "addr": "data.total" },
						{ "id":"participants_total",  "type": "integer",  "addr": "data.conferences[].participants.total" },
						{ "id":"parts_total_in_each",  "type": "integer",  "addr": "data.conferences[description].participants.total" },
						{ "id":"participants_online",  "type": "integer",  "addr": "data.conferences[].participants.online" }
					]
				},
				{
					"name": "abonents", 
					"url": "https://demo.vcs.vinteo.dev/api/v1/accounts",
					"measure": 	[
						{ "id":"total",	"type": "integer", "addr": "data.total" }
					]
				}
			]
        }
    ]
}

Примечание Название конфигурационного файла должно быть как в примере - config_api.json

Настройка режима работы "Статичный"

Для настройки данного режима необходимо пополнить данными о сервере в .env файле по примеру:

...
EXPORTER_URL = "http(s)://ip.ip.ip.ip:port" #                   <--- экспорт данных (обязательно)
# eNODE.Monitoring configuration
ENODE_MONITORING_IP = "ip.ip.ip.ip"								
# admin user is required										
ENODE_MONITORING_LOGIN = "admin_user_enode_monitoring"#         ---> получение данных
# admin password is required									
ENODE_MONITORING_PASSWORD = "admin_password_enode_monitoring" 
...

Настройка режима работы "Системный"

Для настройки данного режима необходимо пополнить данными о сервере в .env файле по примеру:

...
STATUS_SYSTEM_URL = "http(s)://{ip}:{port}/api/input"#          <--- экспорт данных 
# eNODE.Monitoring configuration
ENODE_MONITORING_IP = "{ip}.{ip}.{ip}.{ip}"													 
# admin user is required																	
ENODE_MONITORING_LOGIN = "admin_user_enode_monitoring"#         ---> получение данных
# admin password is required																
ENODE_MONITORING_PASSWORD = "admin_password_enode_monitoring" 
...

Настройка режима работы "Vinteo"

Для работы в данном режиме необходимо установить переменные окружения в соотвествии со списком ниже

...
VINTEO_URL_BASE = "https://demo.vcs.vinteo.dev"
VINTEO_ENDPOINT_CONFERENCES = "/api/v1/conferences"
VINTEO_ENDPOINT_PARTICIPANTS = "/api/v1/participants/"
VINTEO_API_KEY = "00000000000111111111.aaaaaaaaaaaaaaabbbbbbbbbbbbb"
...

Настройка экспорта полученных и обработанных данных

Настройка точки выхода для полученных и обработанных метрик определеяется установленными в переменных окружения параметрами, варианта два:

  1. Экспорт в статусную модель в рамках механизма сквозного прохода данных в проекте Буревестник ВКС
...
STATUS_SYSTEM_URL = "{BASE_URL}/{ROUTE}"
...
  1. Экспорт в экспортер или иной потребитель данных
...
EXPORTER_URL = "{BASE_URL}/{ROUTE}"
...

ОЧЕНЬ ВАЖНОЕ ПРИМЕЧАНИЕ


Одновременное использование $STATUS_SYSTEM_URL и $EXPORTER_URL НЕДОПУСТИМО !! Вариант со ссылкой на статусную модель является по стандарту БОЛЕЕ ПРИОРИТЕТНЫМ, второй затрется, использовать необходимо только один

  1. Произвести сборку проекта командой :
cargo build --release
  1. Запустить

Debug версия

cargo run --bin api-grub

или

Release версия

cargo run --release --bin api-grub

Текущий прогресс

Крейт (подмодуль) Прогресс
api-grub 🛠️
config-delivery [migrated]
integrs-structs
preproc [temp-deprecated]