Включить идентификатор тестового запуска в метрики k6, отправленные в Datadog

#javascript #load-testing #datadog #k6

#javascript #нагрузочное тестирование #datadog #k6

Вопрос:

Я использую k6 на своем локальном компьютере для выполнения нагрузочного тестирования, а также агент Datadog для визуализации показателей в Datadog.

Я бы хотел отфильтровать показатели k6 в Datadog, поскольку тесты не различимы.

На данный момент $test_run_id отображается только * (см. Скриншот ниже): введите описание изображения здесь

Я следовал этому официальному документу, который предлагает установить include_test_run_id флаг true в конфигурации k6, но мне это не удалось.

Вот конфигурация k6, которую я использую в настоящее время ( <YOUR_DATADOG_API_KEY> заменяется фактическим ключом API Datadog):

 export const options = {
  vus: 5,
  duration: "10s",
  noConnectionReuse: true,
  ext: {
    loadimpact: {
      apm: [
        {
          provider: "datadog",
          api_key: "<YOUR_DATADOG_API_KEY>",
          include_test_run_id: true
        }
    ]
    }
  }
};
 

Ответ №1:

Вы используете конфигурацию DataDog для коммерческого облачного сервиса k6 ( k6 cloud ), а не для локального запуска тестов k6 ( k6 run ). test_run_id это концепция облачного сервиса, хотя ее также легко эмулировать локально, чтобы различать тестовые прогоны.

Для локальных тестов вы должны включить вывод DataDog, запустив k6 с k6 run --out datadog script.js помощью . Я предполагаю, что вы это сделали, иначе вы бы не увидели никаких показателей в DataDog.

Затем вы можете использовать эту tags опцию, чтобы ввести уникальный дополнительный тег для всех показателей, сгенерированных конкретным запуском k6, чтобы вы могли различать их в DataDog. Например:

 k6 run --out datadog --tag test_run_id=1 script.js
k6 run --out datadog --tag test_run_id=2 script.js
k6 run --out datadog --tag test_run_id=3 script.js
...
 

Конечно, вы можете выбрать любую key=value комбинацию, вы не ограничены test_run_id .