Конфигурация очереди
Очередь конфигурируется через конфиг файл и/или через переменные окружения контейнера. Если конфиг файл и переменные окружения используются одновременно, то вторые будут иметь приоритет.
Конфигурация очереди с помощью конфиг файла#
При запуске контейнер с очередью ожидает конфиг файл по пути /config/queue.json
. Конфиг файл может быть размещен путем создания нового образа на базе образа очереди или монтирования директории со стороны вызывающего.
Пример конфигурационного файла указан ниже:
{
"checkAgainTimeInterval": 30,
"queuePort": 41000,
"globalAnalyticsConfiguration" : {
"kibanaConfiguration": {
"endpoints": [
"https://elasticsearch-proxy01.example.org:9200",
"https://elasticsearch-proxy02.example.org:9200"
],
"indexPattern": "emcee-queue"
},
"graphiteConfiguration": {
"socketAddress": "graphite.example.org:2003",
"metricPrefix": "emcee.queue"
}
}
}
checkAgainTimeInterval
- время перезапроса бакета для воркера,
queuePort
- порт, на котором будет запущена очередь,
globalAnalyticsConfiguration
- конфигурация для аналитики очереди, kibanaConfiguration
, graphiteConfiguration
- опциональные объекты.
testHistoryService#
Блок testHistoryService
определяет конфигурацию сервиса истории тестов. Сервис истории тестов хранит данные для полсдених n запусков конкретного теста.
Другие сервисы системы Emcee могут использоватье эти данные для оптимизации дальнейшего разбиения тестов на бакеты, предективного перезапуска нестабильных тестов и т.п.
В зависимости от конфигурации сервис истории может использоать разные хранилища. По умолчанию используется Sqlite.
Sqlite#
"testHistoryService": {
"type": "sqlite",
"config": {
"dbFilePath": "/app/TestHistory.db",
"perTestLimit": 20
}
}
dbFilePath
- путь к файлу БД. По умолчанию - Library-директория контейнера /root/emcee/Library/user/ru.avito.emcee/TestHistory.db
.
perTestLimit
- лимит записей для каждого теста в сервисе истории, Emcee будет удалять старые записи, если этот лимит достигнут. По умолчанию - 20.
Influxdb v2#
"testHistoryService": {
"type": "influxdb2",
"config": {
"url": "http://127.0.0.1:8086",
"token": "your_token_here==",
"organization": "Org",
"bucket": "emcee"
}
}
Перед использованием Influxdb v2
в БД должны быть созданы необходимые организация, бакет и выписан авторизационный токен.
Настройки времени жизни данных в бакете так же определяются оператором БД.
Отключение сервиса истории#
Конфигурация очереди с помощью переменных окружения контейнера#
Переменная | Описание |
---|---|
EMCEE_QUEUE_KIBANA_ENDPOINTS | Список адресов для elasticsearch, например, EMCEE_QUEUE_KIBANA_ENDPOINTS="https://elasticsearch-proxy01.example.org:9200,https://elasticsearch-proxy02.example.org:9200" |
EMCEE_QUEUE_KIBANA_INDEX_PATTERN | Index pattern логов Kibana. Например, emcee-queue . |
EMCEE_QUEUE_ELASTIC_API_KEY | api key для Elastic, параметр опциональный. Используется для авторизации в Elastic и будет отправлен в header запроса с логами. Поддержана авторизация типа api-key-service. |
EMCEE_QUEUE_GRAPHITE_ADDRESS | Адрес для Graphite, например, graphite.example.org:2003 . |
EMCEE_QUEUE_GRAPHITE_METRIC_PREFIX | Префикс метрик Graphite. Например, emcee.queue . |