Skip to main content

Описание

Настройки

Настройка производится путем изменения значений переменных среды или 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. Получение из локально кеша объектов по которым есть несихронизированные метрики
  2. Для каждого объекта из пункта 1 делается запрос http запрос в index-сервис для сохранения. В ответе получаем id объекта в базе сервиса
  3. Получение несинхронизированных метрик из локального кеша.
  4. Отправка данных из пункта 3 пачками в index-сервис
  5. При успешном запросе в п.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 - строка с ответом сервиса