Skip to content

Конфигурация очереди

Очередь конфигурируется через конфиг файл и/или через переменные окружения контейнера. Если конфиг файл и переменные окружения используются одновременно, то вторые будут иметь приоритет.

Конфигурация очереди с помощью конфиг файла#

При запуске контейнер с очередью ожидает конфиг файл по пути /config/queue.json. Конфиг файл может быть размещен путем создания нового образа на базе образа очереди или монтирования директории со стороны вызывающего.

Пример конфигурационного файла указан ниже:

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 в БД должны быть созданы необходимые организация, бакет и выписан авторизационный токен. Настройки времени жизни данных в бакете так же определяются оператором БД.

Отключение сервиса истории#

"testHistoryService": null

Конфигурация очереди с помощью переменных окружения контейнера#

Переменная Описание
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.