Описание
Настройки
Настройка производится путем изменения значений переменных среды или ENV файла.
ENV файл представляется собой текстовый файл, в котором описаны настройки в формате КЛЮЧ=ЗНАЧЕНИЕ. Каждая строка файла может содержать одну пару КЛЮЧ=ЗНАЧЕНИЕ. Для ENV файла допускается имя .env и win.env. Значение переменных из файла ENV имеют более высокий приоритет чем переменные среды.
Описание настроек
ниже описаны настройки, разбитые на группы
Настройки приложения
- SPPINDEX_APP_LOG_LEVEL - уровнь логгирования приложения
- тип: строка
- доступные значения: DEBUG, INFO, WARNING, ERROR, CRITICAL
- значение по умолчанию: INFO
- SPPINDEX_APP_PATH_DATA - расположение папки для хранения временных файлов
- тип: строка
- значение по умолчанию: var
Настройки локальной базы приложения
- SPPINDEX_DATA_METRICS_AGE - максимальное количество дней для хранения метрик в локальной базе
- тип: положительное целое число
- значение по умолчанию: 30
- SPPINDEX_DATA_METRICS_SAVE_CHUNK_SIZE - размер чанка данных для сохранения в локальной базе
- тип: положительное целое число
- значение по умолчанию: 1000
Настройки расписаний запуска задач
- SPPINDEX_CRON_DOWNLOAD - расписание для запуска задачи скачивания данных с источников
- тип: строка в формате CRONTAB
- значение по умолчанию: 0 * * * *
- SPPINDEX_CRON_UPLOAD - расписание для запуска задачи загрузки незагруженных данных в index-сервис
- тип: строка в формате CRONTAB
- значение по умолчанию: */10 * * * *
- SPPINDEX_CRON_VACUUM - расписание для запуска задачи очистки устаревших данных в локальной базе
- тип: строка в формате CRONTAB
- значение по умолчанию: 0 */6 * * *
Настройки для взаимодействия с index-сервисом
- SPPINDEX_SERVICE_TOKEN - токен доступа к index-сервису
- тип: строка
- SPPINDEX_SERVICE_URL - URL index-сервиса
- тип: строка в формате URL
- SPPINDEX_SERVICE_CHUNK_SIZE - количество метрика передаваемых в одном запросе
- тип: положительное целое число
- значение по умолчанию: 100
Настройки адаптера CLICKHOUSE
- SPPINDEX_CLICKHOUSE_HOST - адрес сервера
- тип: строка
- SPPINDEX_CLICKHOUSE_PORT - порт сервера
- тип: целое число в диапазоне 0-65535
- значение по умолчанию: 9000
- SPPINDEX_CLICKHOUSE_USERNAME - имя пользователя для доступа к серверу
- тип: строка
- значение по умолчанию: default
- SPPINDEX_CLICKHOUSE_PASSWORD - пароль пользователя для доступа к серверу
- тип: строка
- значение по умолчанию: default
- SPPINDEX_CLICKHOUSE_INCLUDE - список баз из которых будет производиться выгрузка.
- тип: строка. базы перечисляются через запятую
- если не задано - выгружается по всем базам кроме SPPINDEX_CLICKHOUSE_EXCLUDE
- SPPINDEX_CLICKHOUSE_EXCLUDE - список баз из которых не будет производиться выгрузка.
- тип: строка. базы перечисляются через запятую
- при заданном SPPINDEX_CLICKHOUSE_INCLUDE игнорируется
Настройки адаптера COUNTMAX
возможно задание нескольких экземпляров.
номер экземпляра задается необязательным окончанием _NUM,
где NUM - целое положительное числонапример
SPPINDEX_COUNTMAX_HOST - задает адрес сервера для нулевого экземпляра адаптера
SPPINDEX_COUNTMAX_HOST_1 - задает адрес сервера для первого экземпляра адаптера
сортировка адаптеров осуществляется по номеру экземпляра
допускается пропуск номеровв описании переменных необязательное окончание обозначается квадратными скобками
- SPPINDEX_COUNTMAX_HOST[_NUM] - адрес сервера
- тип: строка
- SPPINDEX_COUNTMAX_PORT[_NUM] - порт сервера
- тип: целое число в диапазоне 0-65535
- значение по умолчанию: 1433
- SPPINDEX_COUNTMAX_USERNAME[_NUM] - имя пользователя для доступа к серверу
- тип: строка
- значение по умолчанию: default
- SPPINDEX_COUNTMAX_PASSWORD[_NUM] - пароль пользователя для доступа к серверу
- тип: строка
- значение по умолчанию: default
- SPPINDEX_COUNTMAX_INCLUDE[_NUM] - список проектов по которым будет производиться выгрузка.
- тип: строка. проекты перечисляются через запятую
- SPPINDEX_COUNTMAX_EXCLUDE[_NUM] - список проектов по которым не будет производиться выгрузка.
-
- тип: строка. проекты перечисляются через запятую
-
Облако
Тестовый экземпляр утилиты миграции развернут в облаке. spp_agent_dev -> index-migration
Взаимодействие с index-сервисом
В зависимости от расписания заданного в SPPINDEX_CRON_UPLOAD запускается задача загрузки данных в index-сервис.
Загружаются только раннее не синхронизированные данные.
Последовательность действий итерации:
- Получение из локально кеша объектов по которым есть несихронизированные метрики
- Для каждого объекта из пункта 1 делается запрос http запрос в index-сервис для сохранения. В ответе получаем id объекта в базе сервиса
- Получение несинхронизированных метрик из локального кеша.
- Отправка данных из пункта 3 пачками в index-сервис
- При успешном запросе в п.4 помечаем метрики как синхронизированные
Описание API для взаимодействия с index-сервисом
Запрос сохранения объекта
POST: SPPINDEX_SERVICE_URL/control/clients/1/init_organization_object
{
"external_id": OBJECT_ID
"name": OBJECT_NAME
}
- OBJECT_ID - локальный ID объекта (external_id в терминологии index-сервиса)
- генерируется по правилу ADAPTERID_DBNAME_OBJECTID
- OBJECT_NAME - имя объекта из базы источника
Ответ сервиса:
{
"error": ERROR_FLAG,
"message": MESSAGE,
"id": REMOTE_OBJECT_ID
}
- ERROR_FLAG - булево значение
- true - ошибка есть
- false - ошибки нет
- MESSAGE - строка с ответом сервиса
- REMOTE_OBJECT_ID - ID объекта в базе index-сервиса
Запрос сохранения метрик
POST: SPPINDEX_SERVICE_URL/data/visits
[
...,
{
"object_id": REMOTE_OBJECT_ID,
"day": DATE,
"visits": VISITS_COUNT
},
...
]
- REMOTE_OBJECT_ID - строка с ID объекта в базе index-сервиса
- DATE - строка с датой в формате YYYY-MM-DD. Дата метрики
- VISITS_COUNT - целое число. Данные метрики (количество проходов)
Ответ сервиса:
{
"error": ERROR_FLAG,
"message": MESSAGE
}
- ERROR_FLAG - булево значение
- true - ошибка есть
- false - ошибки нет
- MESSAGE - строка с ответом сервиса
No Comments