#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
.