Документация
- Changelog
- Новое в версии 1.0.25
- Новое в версии 1.0.24
- Новое в версии 1.0.23
- Новое в версии 1.0.19
- Новое в версии 1.0.18
- Новое в версии 1.0.17
- Новое в версии 1.0.16
- Новое в версии 1.0.15
- Новое в версии 1.0.26
- Новое в версии 1.0.27
- Новое в версии 1.0.28
- Новое в версии 1.0.29
- Новое в версии 1.0.30
- Сервисный режим
- Агент
- Сервис
- Сравнение хэш-сумм метрик за период (СТАРЫЙ НЕ ИСПОЛЬЗОВАТЬ)
- API 1C
- Сравнение хэш-сумм метрик за период
- Новое в версии 1.0.25
Changelog
Новое в версии 1.0.25
Описание изменений
Агент (служба управления устройствами)
- Восстановлен режим работы делегата
- Восстановлена работоспособность команд по выгрузке данных датчика 3db. 99
Новое в версии 1.0.24
Описание изменений
Агент (служба управления устройствами)
- Оптимизирован процесс получения метрик.
- Добавлена поддержка делегирование tcp-запросов
Управление данными
- Добавлена возможность корректировки данных на основе прошлых периодов
- вставка из прошлой недели
- вставка среднего за 4 недели
- вставка из прошлого года (такой же день недели такой же недели)
- вставка из прошлого года (такой же день месяца такого же месяца)
- вставка из произвольного периода (задать начальную дату, время)
- изменить данные (возможно умножением на произвольный коэффициент, в т.ч. 0)
- Реализован общий отчет по устройствам всех клиентов
- База данных - область СПП
- Тип объекта - ТЦ/Сеть
- Объект - наименование объекта ТЦ или клиента сети (в общем отчете)/наименование объекта (в детализированном)
- Клиент - наименвании клиента (владельца/организации)
- Кол-во объектов
- Устройство по их типам
- Реализован отчет по обслуживанию клиентов
- Объект
- Клиентский код объекта
- Адрес
- Статус
- Дата начала данных
- Дата окончания данных
- Количество дней
- Датчиков всего
- Датчиков на обслуживании
- Комментарий
Мониторинг отклонений
- Показатель "Полнота данных" рассчитывается на всех устройствах клиентах.
- Существенно оптимизировано время построения детализированного отчета.
Анализ данных
- Добавлена возможность гибкого выделения объектов для построения на очень крупных проектов.
Исправление ошибок
- В детализированном отчете мониторинга отклонений при расчете датчиков по отсутствующим данным
- Исправлена ошибка прав у пользователей в коробочной версии
- Исправлены ошибки при выгрузки списка устройств связанных с командами get_config
Новое в версии 1.0.23
Описание изменений
Агент (служба управления устройствами)
- Процесс сохранение метрик от устройств перенесен в фоновый процесс для высоконагруженных проектах
- Для датчиков 3dh оптимизировано получение пассивных метрик
- Добавлена поддержка версии 5.3 датчиков Xovis
- Реализован режим делегата.
- В случае когда доступ к устройствам возможно только из внутренней сети добавлена возможность установки делегата для управления устройствами.
- Интегрирован новый тип датчика 3D Dahua
- Интегрирован новый тип датчика Rstat 2DReal
Управление данными
- Добавлена возможность перехода в интерфейс управления устройства из панели управления данными
- Добавлена функция агрегации в раздел управления данными
- Оптимизировано поведение системы при редактировании объектов.
- Теперь при редактировании объектов фокус изменяемого объекта не изменяется.
- Сохранение объектов доступно теперь только при изменении реквизитов.
- Добавлена возможность указывать коэффициент значимости сенсора в подсчете количество по переходу.
- При изменении активности объекта автоматически изменяется активность у подчиненных объектов
Мониторинг отклонений
- Оптимизирована работа рабочего места на крупных сетях
- Реализован механизм по расчету текущего состояния системы.
- К1 (Погрешность Вход/Выход)
- K2 (Процент отсутствующих данных)
- K3 (Динамика ненулевых к ср. за 4 недели)
- K4 (Динамика Вход к ср. за 4 недели)
Сервисный режим
- Оптимизирована синхронизация большого количества метрик.
Анализ данных
- Добавлена возможность сохранения шаблонов отчетов
- Добавлена возможность отправки шаблонов отчетов
Мониторинг данных
- Добавлен триггер "Отклонение от статистики"
- Добавлен триггер "Погрешность Вход/Выход"
- Добавлен отчет по текущему состоянию активов по объектам проекта.
Общее
- Добавлена возможность управления правами доступа неразделенными пользователя в сервисном режиме.
- Добавлена поддержка работы с БД ClickHouse для оптимизации работы с большими проектами.
Исправление ошибок
- Исправлена ошибка при снятии флага "Использовать агрегированные данные"
- Исправлена ошибка при проверки пересечения арендаторов
Новое в версии 1.0.19
1С. Версия 1.0.19
Агент. Версия 2023.7.1
- поддержка метрик датчика Dohua (3dd)
- поддержка метрик в которых присутствует только серийный номер (мак отсутствует)
- поддержка метрик датчика Xovis c версией прошивки новее 5.3
- фикс активации/деактивации пассивного режима
- добавлена проверка мак адреса устройства при скачивании пассивных метрик (3dh, 3dv, 3dx)
Агент. Версия 2023.8.1
- локальное время датчика в команде upload_data
- поддержка датчика 3D TD
- обновлены зависимости агента
- поддержка сервисного режима
Новое в версии 1.0.18
1С. Версия 1.0.18
- Список областей
- Добавлены новые поля
- Управление данными
- Добавлено поле "Активность" зон и переходов.
- Добавлена проверка пересечение арендаторов.
- На формы списка сущностей добавлены все поля.
- Из дерева данных можно сразу переходить на форму списка.
- Добавлена форма удаления данных CH.
- Добавлена возможность указание нескольких переходов в устройство и зоны
- Анализ данных
- Изменена логика формирование "По часам" на "дд:мм:гг чч:мм"
- "По неделям" В первый столбец в значение интервала добавлен номер недели.
- Изменено наименование первого столбца для периодичности:
- По интервалам выгрузки - на "Интервал"
- По часам - на "Интервал"
- По 15 минут - на "Интервал"
- По неделям - на "Неделя" - Добавлено отображение типа устройства в дереве.
- Добавлено отображение красным цветом отсутствующих данных
- Панель выполнения команд.
- Исправлена ошибка некоренного отображения статуса выполнения команд устройств в 1С
- Устройства
- Добавлена поддержка slave устройств
- Исправлена ошибка проверки пароля.
- Исправлены ошибки:
- Исправлена ошибка синхранизации устройств, в случае если их больше 10 у агента.
- Исправлена ошибка создания активов устройств на расширенном обслуживании в ITIL
- Исправлена ошибка затирания мак-адреса на серийный номер при загрузке из CM
- Исправлена ошибка некоренного отображения статуса выполнения команд устройств в 1С
Агент Версии 2023.5.2
- Реализовано обнаружение и восполнение пробелов в метриках на агенте
- Добавлено дополнительное поле (local_ip), в котором будет храниться значение локального ip адреса устройства (из метрики)
Новое в версии 1.0.17
1С. Версия 1.0.17
- Управление данными
- Для переходов добавлено подчинение сенсоров
- Анализ данных
- Добавлен множественный выбор однотипных объектов.
- Панель выполнения команд.
- Добавлена возможность настраивать показываемые колонки
- Добавлена поисковая строка в списке устройств
- Функция сравнения соответствия проекта доработана
- Добавлена возможность самому настраивать порядок колонок
- Мониторинг отклонений
- Убраны папки "Входы"/"Выходы"
- Добавлен признак выхода у перехода
- Добавлена возможность развернуть/свернуть все подчиненные ветки дерева
- Добавлен быстрый поиск по дереву
- Торговые площади помещены в отдельную папку торговых площадей
- К наименованию зоны добавлено наименование арендатора
- Исправлены ошибки:
- Отсутствовал понедельник на графике по неделям у некоторых объектов
- Не обновлялось количество устройство в агенте при синхранизации устройств
- Исправлена ошибка дублирование арендатора в зоне
Утилита миграции. Версия 2023.4.1
- Добавлен процесс загрузки метрик в gui
- Для проектов с CM_Project.ID_TypeProject == 2 timezone_offset теперь берется из таблицы CM_Region
Сервис
- Добавлены методы синхронизации между сервисом и воркером: получение данных из воркера за указанный период, получение хэшсумм(итоговых значений) за указанный период
Агент. Версия 2023.5.1
- разборы метрик каждого устройства перенесены в отдельные файлы и унифицированы
- переработаны декораторы по всему проекту
- пассивный режим 3dx
- функция выкачивания пробелов в метриках
- доработан парсер 3db (добавлено больше полей для определения типа метрики)
- переработано взаимодействие с устройствами cm_xx (пассивные датчики), добавлена поддержка команды upload_data
- переработан механизм определения типа контроллера метрики и alarm-метрики
- при создании устройства агентом добавлены: инициализация timezone значением из метрики, инициализация host значением из метрики (после успешной проверки доступности адреса)
- исправлены неправильные периоды выгрузки в команда upload_data
- фикс прерывания цикла запросов команд
Новое в версии 1.0.16
Агент. Версия 2023.4.1
- переработана работа с локальной базой агента
- расширена поддержка датчика 3dm
- убрано удаление метрик из базы агента после отправки
- переработана работа комманд
- обновлены зависимости агента
- добавлен скрипт сборки win версий
- отправка новых устройств только при их активности
- пассивный режим на 3dh и 3dv
- фикс выгрузки исторических данных на 3dv
- добавлена обратотка sigterm сигнала
- заделы под сервисный режим и восполнение пробелов метрик
- фикс запроса конфига в 3db
Агент. Версия 2023.2.8
- переход на python3.11. обновление зависимостей агента
- проверка настроек ftp на устройстве при команде video_record
- фикс ошибки при отправке логов устройств
- переработаны таблицы метрик в локальной базе агента
- ротация и архивация логов, задел под перенос логов в другую папку
- асинхронный запуск команд на устройствах
- исправлена ситуация с разрастанием количества соединений с 1с в коробочной версии
- округление дат метрик. централизованное логгирование метрик
- добавлен http триггер, запускающий запрос комманд у сервиса вне расписания
- фикс sftp выгрузки в xovis
- фикс настроек изображения в 3dh
- добавлена валидация адреса ftp в команде скриншота
- в hikvision в парсере метрик добавлена проверка полей дат
- в заголовки запросов к сервису добавлен "Agent-External-Url"
- добавлена поддержка метрик устройства "3d megacount"
1С. Версия 1.0.16
- Управление данными
- В Устройстве добавлена возможность привязки сенсора к переходу
- В зоне добавлена возможность привязки перехода.
- Доработан пароль устройств. Установлены требования к паролю устройства.
- На формы объекта, агента и зоны добавлены их ID.
- Анализ данных
- Добавлена периодичность "По интервалам выгрузки"
- Добавлена возможность отдельно указывать время в отборе по периоду.
- Добавлен выбор метрики "Сумма" - является суммой метрик "Вход" и "Выход".
- Добавлены команды "Выбрать *ИмяОбъекта*" для типов объектов "Объект", "Зоны", "Переход" и "Сенсор".
- Значительно ускорено время полного разворачивания дерева
- Информационная панель.
- Добавлена возможность множественного выбора объектов.
- Панель выполнения команд.
- Существенно уменьшено время выполнения команд для агентов находящихся в нашей инфраструктуре.
- Добавлена возможность настраивать показываемые колонки
- Добавлена поисковая строка в списке устройств
- Добавлена функция сравнения соответствия проекта
- Добавлена возможность самому настраивать порядок колонок
- Добавлена возможность назначать группы доступа неразделенным пользователям
- Исправлены ошибки:
- Ошибка при попытке восстановления пароля пользователя.
- На некоторых объектах отсутствовали данные по понедельнику в графиках по неделям в информационной панели.
Новое в версии 1.0.15
- Добавлена панель управления устройствами, доступная через форму агента. Hеализованы команды управления устройствами
- Получить параметры
- Изменение параметров устройства
- Экспорт структуры проекта из БД.
- Обновление прошивки
- Изменение аутентификации
- Снятие скриншота (не регламентно)
- Постановка записи (не регламентно)
- Выгрузка данных
- Проверка соответствия проекту конфигурации устройства
- Перезагрузка
- Просмотр логов
- Произвольная команда
- Добавлен модуль получения логов устройств
- Добавлена возможность помечать области на удаления, такие области будут отображаться как помеченные в списке областей.
- При пометки на удаления области снимается флаг активности у клиента:
- Отключается возможность входа пользователей клиента
- Отключается доступ к API
- Отключается расширенный мониторинг
- При пометки на удаления области снимается флаг активности у клиента:
- Добавлена возможность создавать неразделенного пользователя с указанием доступных областей
- Теперь можно разделять доступ неразделенных сотрудников по доступным областям
- Доработана информационная панель:
- Изменен порядок виджетов информационной панели на: Вошло Вышло Внутри
- Добавлен процент относительно прошлой недели.
- Интенсивность потока рассчитывается только за рабочие часы.
- В графике по неделям изменены столбы "Позапрошлая неделя" на "Текущая неделя прошлого года"
- Изменен порядок виджетов информационной панели на: Вошло Вышло Внутри
- Доработана обратка удаления данных
- Метрики удаляются по локальному времени объекта
- Добавлена возможность удаления структуры проекта из CH.
- Доработана утилита миграции:
- Добавлен интерфейс
- Добавлена возможность указывать определенные даты выгрузки исторических метрик
- Исправлена ошибка при миграции большой базы (>40гб)
- Оптимизировано получение данных по API
- Расширено описание получаемых данных по API.
- Доработаны получение данных агентом. Получаемые метрики приводятся к начале минуты
- Доработана информационная панель:
- Изменить колонки "По неделям"
- Убрать для сетей панель "Распределение по входам"
- Изменить порядок виджетов
- Топ 10 по посещаемости
- Интенсивность потока должно рассчитываться только за рабочие часы объекта
- Добавить к виджетам процентом относительно прошлой недели
- Доработан раздел "Управление данными":
- Переходам добавить подчиненные сенсоры
- Доработан раздел "Мониторинг отклонений"
- Убрана лишняя детализация папок входы/выходы.
- Форма добавление разделенных пользователей 2.0
- Добавлена возможность отправки пароля и доступа на почту при добавлении
- Добавлена возможность восстановления пароля
- Добавлена поля для простоты создания пользователя
- Добавлена возможность разделение доступов для неразделенных пользователей.
- Возможно назначать области к которым будет доступ
- Добавлена возможность помечать клиента на удаления.
- При удалении отключаются функции расширенного обслуживания и API.
- В местах где используется поле часового пояса добавлена приписка в количестве часов от UTC. к примеру: Europe/Moscow (+03:00)
- Исправлены ошибки:
- Не выключается агрегация.
- Копирование устройств.
- Прочие исправления.
Новое в версии 1.0.26
Описание изменений
Агент (служба управления устройствами)
- Оптимизирована работа с SQLite
- Исправлена проблема определения датчика 3hx
- Исправлена проблема десериализации данных при запросе скриншота
- Теперь по умолчанию сбор devices_logs отключен, нужно включать через env файл
Новое в версии 1.0.27
Описание изменений
Агент (служба управления устройствами)
- Оптимизирована работа с SQLite и Postgres
- Оптимизировано петребление ресурсов в сервисном режиме
- Добавлен тестовый модуль имитации активных метрик (по устройствам 3hx и 3dh)
- Реализован кэш для записи метрик в базу (работает в тех случаях когда метрики не могут перезаписываться, т.е. дубликаты при записи игнорируются)
- В режиме DEBUG теперь можно увидеть сырой XML выгрузки
Новое в версии 1.0.28
Описание изменений
Агент (служба управления устройствами)
- Оптимизирована работа кэша
- Фикс определения устройств 3hx и 3db
- Фикс проблемы "зануления" метрик по 3dh
- Добавление описания параметров .env
Новое в версии 1.0.29
Описание изменений
Агент (служба управления устройствами)
- Удалён кэш, т.к. оптимизация записи в БД больше не требует его наличия
- Оптимизация работы с БД
- Решена проблема с частичной недоступностью устройств в режиме делегата
Новое в версии 1.0.30
Описание изменений
Агент (служба управления устройствами)
- Исправлена проблема с командой upload_data, возникавная из-за проблемы с часовыми поясами
Сервисный режим
Агент
Переменные среды
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
Сервис
API
Команды:
Синхронизация структуры агента
POST: /control/client/{client_id}/device/command service_mode.sync_object_struct
{
// Идентификатор не обязателен. Если не передается, сервис генерирует свой и возвращает в ответе.
"command_id": "1b38f303-a0cb-47ca-850c-450e4d9e4380",
"device_id" : [], // пустой список
"command": "service_mode.sync_object_struct",
"params": {
"object_struct": "Строка Base64"
}
}
Синхронизация метрик
POST: /control/client/{client_id}/device/command service_mode.sync_metrics
тело запроса:
"command_id": "1b38f303-a0cb-47ca-850c-450e4d9e4380", // идентификатор команды
"device_id" : [], // пустой список
"command": "service_mode.sync_metrics", // тип команды
"params": {
"from":1679300100, // начало интервала
"to": 1679300300 // конец интервала
}
}ответ:
{
"error_flag": 0,
"messages": [],
"payload": {}
}
Алгоритм выполнения:
- информация о команде записывается в БД в таблицу commands
- срабатывает триггер: {host}/agent/commands_check, отправляя текущую команду в соответствующий агент
- стандартный ответ, если запись в БД и триггер отработали успешно или ошибка если один из этапов завершился с ошибкой
Метрики за указанные период
GET: /agent/service_mode/get_metrics?from=&to=
параметры:
"from" - начало запрашиваемого интервала в UNIX формате;
"to" - конец интервала в UNIX формате;ответ:
"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
}
]
алгоритм выполнения:
- сервис обращается к worker по rpc
- worker отправляет запрос в CH, полученный результат отправляет обратно
- сервис формирует ответ и отправляет отправителю
Контрольные суммы за указанный период
GET: /agent/service_mode/get_sum?from=&to=
параметры:
"from" - начало запрашиваемого интервала в UNIX формате;
"to" - конец интервала в UNIX формате;
ответ:{
{
"error_flag": 0,
"messages": [],
"payload": {
"agent_id": "de61e105-f743-44aa-b1ab-f799cd513229",
"from": 1679300100,
"to": 1679300300,
"hash_device": "831e7c6c89053b74840fbc72e972d10c24757d4225784e1c7ab25a5e08199e04",
"hash_portal": "ffa45493d81296512e0eea5a80c456e5938159b0f5aba5d59318c60d8df6a489"
}
}
алгоритм выполнения:
- сервис обращается к worker по rpc
- worker отправляет запрос в CH, полученный результат отправляет обратно
- сервис рассчитывает хеш-сумму, формирует ответ и отправляет результат отправителю
Сравнение хэш-сумм метрик за период (СТАРЫЙ НЕ ИСПОЛЬЗОВАТЬ)
Для сравнения хэш-сумм используется функция хэширования SHA256. Хэшируется JSON строка выборки данных за указанный период. Структура данных для метрик по устройствам и метрикам по переходам указана ниже.
Обязательно условия выборки данных:
- Сортировка:
- Для переходов
- times - по возрастанию
- portal_id - по возрастанию
- metric_type - по возрастанию
- Для устройств
- times - по возрастанию
- device_id - по возрастанию
- sensor_id - по возрастанию
- metric_type - по возрастанию
- Для переходов
- Порядок полей:
- Для переходов
- times
- portal_id
- metric_type
- count
- modify_data
- Для устройств
- times
- device_id
- sensor_id
- metric_type
- count
- Для переходов
- В строке JSON должны быть полностью исключены все символы кроме значимых (исключить пробелы, переносы строк и т.п.).
- Формат даты ISO, пример "2019-03-15T00:00:00".
Тело ответа на запрос хэш-суммы за период:
{
"error_flag": 0,
"messages": [],
"payload": {
"agent_id": "de61e105-f743-44aa-b1ab-f799cd513229",
"from": 1679300100,
"to": 1679300300,
"hash_device": "831e7c6c89053b74840fbc72e972d10c24757d4225784e1c7ab25a5e08199e04",
"hash_portal": "ffa45493d81296512e0eea5a80c456e5938159b0f5aba5d59318c60d8df6a489"
}
}
Пример структуры для переходов:
[
{
"times": "2022-01-31T11:00:00",
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "in",
"count": 15,
"modify_data": 0
},
{
"times": "2022-01-31T11:00:00",
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "out",
"count": 11,
"modify_data": 0
},
{
"times": "2022-01-31T11:00:00",
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "pass",
"count": 11,
"modify_data": 0
},
{
"times": "2022-01-31T11:00:00",
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "unknown",
"count": 11,
"modify_data": 0
}
]
Пример структуры для устройств:
[
{
"times": "2022-01-31T11:00:00",
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "in",
"count": 15
},
{
"times": "2022-01-31T11:00:00",
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "out",
"count": 11
},
{
"times": "2022-01-31T11:00:00",
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "pass",
"count": 11
},
{
"times": "2022-01-31T11:00:00",
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "unknown",
"count": 11
}
]
API 1C
GET: /agent/service_mode/get_sum
запрос хэш-сумм метрик за промежуток времени (sha256). Подробнее про алгоритм хэширование в этой статье.
Параметры:
- from - начало промежутка. utc unixtime
- to - окончание промежутка. utc unixtime
Ответ:
{
"error_flag": 0,
"messages": [],
"payload": {
"agent_id": "de61e105-f743-44aa-b1ab-f799cd513229",
"from": 1679300100,
"to": 1679300300,
"hash_device": "831e7c6c89053b74840fbc72e972d10c24757d4225784e1c7ab25a5e08199e04",
"hash_portal": "ffa45493d81296512e0eea5a80c456e5938159b0f5aba5d59318c60d8df6a489"
}
}
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
}
]
}
Сравнение хэш-сумм метрик за период
Для сравнения хэш-сумм используется функция хэширования SHA256. Хэшируется JSON строка выборки данных за указанный период. Структура данных для метрик по устройствам и метрикам по переходам указана ниже.
Обязательно условия выборки данных:
- Сортировка:
- Для переходов
- portal_id - по возрастанию
- metric_type - по возрастанию
- Для устройств
- device_id - по возрастанию
- sensor_id - по возрастанию
- metric_type - по возрастанию
- Для переходов
- Порядок полей:
- Для переходов
- portal_id
- metric_type
- count
- modify_data
- Для устройств
- device_id
- sensor_id
- metric_type
- count
- Для переходов
- В строке JSON должны быть полностью исключены все символы кроме значимых (исключить пробелы, переносы строк и т.п.).
Тело ответа на запрос хэш-суммы за период:
{
"error_flag": 0,
"messages": [],
"payload": {
"agent_id": "de61e105-f743-44aa-b1ab-f799cd513229",
"from": 1679300100,
"to": 1679300300,
"hash_device": "831e7c6c89053b74840fbc72e972d10c24757d4225784e1c7ab25a5e08199e04",
"hash_portal": "ffa45493d81296512e0eea5a80c456e5938159b0f5aba5d59318c60d8df6a489"
}
}
Пример структуры для переходов:
[
{
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "in",
"count": 15,
"modify_data": 0
},
{
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "out",
"count": 11,
"modify_data": 0
},
{
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "pass",
"count": 11,
"modify_data": 0
},
{
"portal_id": "75c1f93c-6d8f-4bf0-bb1c-f5852e178b88",
"metric_type": "unknown",
"count": 11,
"modify_data": 0
}
]
Пример структуры для устройств:
[
{
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "in",
"count": 15
},
{
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "out",
"count": 11
},
{
"device_id": "75c1f93c-238f-4bf0-bb1c-f5852e178b88",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "pass",
"count": 11
},
{
"device_id": "05b0b047-013f-4b88-8534-b2ddecf80384",
"sensor_id": "45c1f93c-6d8f-4650-bb1c-f5852e156b78",
"metric_type": "unknown",
"count": 11
}
]
Новое в версии 1.0.25
Агент. Версия 2024.9.1
- Появилась возможность одновременного запуска нескольких агентов
- Добавлена поддержка PostgreSQL
- Интеграция датчиков 3dr, 3hx
- Расширено логирование в режиме DEBUG, теперь видно также тело любого запроса к сервису и его ответ
- В функции device_metrics_remove_old добавил разбиение информации на чанки, а то были случаи перегрузки и выбивания по тайм ауту