Агент
Переменные среды
CFG_AGENT_SERVICE_MODE
- 0 - флаг выключенного сервисного режима. значение по умолчанию
- 1 - флаг включенного сервисного режима
CFG_AGENT_SERVICE_MODE_URL_BASE
url для получения команд в сервисном режиме
CFG_AGENT_SERVICE_MODE_URL_DATA
url для дополнительной выгрузки (в сервис) метрик в сервисном режиме
CFG_AGENT_SERVICE_MODE_TOKEN
токен сервиса в сервисном режиме
CFG_AGENT_SERVICE_MODE_SYNC_METRIC_CRON
крон расписание для синхронизации метрик коробки и сервиса. Значение по умолчанию - "10 * * * *"
CFG_AGENT_SERVICE_MODE_METRIC_SYNC_PERIOD
количество дней для синхронизации метрик коробки и сервиса по расписанию. Значение по умолчанию - 14
CFG_AGENT_SERVICE_MODE_METRIC_SYNC_CHUNK_MIN
минимальное количество дней в запросе сумм и метрик при синхронизации. Значение по умолчанию - 1
CFG_AGENT_SERVICE_MODE_METRIC_SYNC_CHUNK_MAX
максимальное количество дней в запросе сумм и метрик при синхронизации. Значение по умолчанию - 7
Команды
service_mode.sync_metrics
команда синхронизации с произвольным промежутком
Параметры:
- from - начало промежутка. utc unixtime
- to - окончание промежутка. utc unixtime
- force - флаг принудительной синхронизации. при force == True поиск различий не производится и выгружаются все метрики
service_mode.sync_object_struct
команда для передачи измененных объектов из сервиса в коробку. команда-singleton - агент не добавит команду, если в очереди команд есть команда с таким типом.
Параметры
- object_struct - строка с бинарными данными структуры объекта в формате base64
API сервиса
GET: /agent/service_mode/get_sum
запрос сумм метрик за промежуток времени
- from - начало промежутка. utc unixtime
- to - окончание промежутка. utc unixtime
GET: /agent/service_mode/get_metrics
запрос метрик за промежуток времени
- from - начало промежутка. utc unixtime
- to - окончание промежутка. utc unixtime
API 1с
POST: /agent/service_mode/object_struct
Отправка измененных данных объектов из сервиса в коробочное издание.
{
"object_struct": "BASE64 строка"
}
POST: /agent/service_mode/metrics
Отправка метрик из сервиса в коробку. Предполагается пересылка без изменения формата
Пример тела запроса
{
"client_id": "de61e105-f743-44aa-b1ab-f799cd513229",
"db_name": "DB_2",
"from": 1679443000,
"to": 1679529000,
"metrics": [
...,
{
"times": "2022-01-31T11:00:00",
"device_id": "a26c126b-7372-4123-a825-55d1526d1b1d",
"sensor_id": "80116311-1e27-4fe1-06c3-9d6a75fe6f84",
"metric_type": "in",
"count": 0
},
...
],
"portal_metrics": [
{
"times": "2022-01-31T11:00:00",
"portal_id": "287641f2-47b5-40c4-ac28-de2f53a3cf3c",
"metric_type": "in",
"count": 0,
"modify_data": 0
}
]
}
GET: /agent/service_mode/get_sum
запрос хэш-сумм метрик за промежуток времени. wiki
- from - начало промежутка. utc unixtime
- to - окончание промежутка. utc unixtime
Описание процессов
Автоматическая синхронизация метрик
- период сверки - 14 дней
- максимальный размер чанка - 7 дней (TODO)
- минимальный размер чанка - 1 день (TODO)
- Начало итерации (по рассписанию)
- Сверка сумм
- запрос сумм в сервисе
- запрос сумм в коробке
- сравнение сумм в чанке
- при несовпадении сумм повторяем пункты 2.1, 2.2, 2.3 (бинарный поиск)
- при достижении минимального размера чанка - заносим промежуток в список data_discrepancy
- Передача данных
- запрос данных в сервисе. параметры - промежутки из data_discrepancy
- передача данных в коробку
- Окончание итерации
Cинхронизация метрик по команде от сервиса
Идентично автоматической синхронизации метрик.
Исключение - период сверки, который берется из параметров корманды
Передача измененных данных объектов из сервиса в коробку
Передача происходит через команду service_mode.sync_object_struct
No Comments