在发送给 Datadog 的 k6 指标中包含测试 运行 id
Include test run id in k6 metrics sent to Datadog
我在本地机器上使用 k6 执行负载测试,并使用 Datadog agent 可视化 Datadog 中的指标。
我想在 Datadog 中过滤 k6 指标,因为测试无法区分。
此时$test_run_id
只显示*
(参考下面的截图):
我按照 this the official doc 建议在 k6 配置中将 include_test_run_id
标志设置为 true
,但我没有成功。
这是我目前使用的 k6 配置(<YOUR_DATADOG_API_KEY>
替换为实际的 Datadog API 密钥):
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
}
]
}
}
};
您正在使用商业 k6 Cloud service (k6 cloud
) 的 DataDog 配置,而不是本地 运行 k6 测试 (k6 run
)。 test_run_id
是云服务中的一个概念,尽管它也很容易在本地模拟作为区分测试 运行s 的一种方式。
对于本地测试,您应该通过 运行ning k6 和 k6 run --out datadog script.js
启用 DataDog 输出。我假设您这样做了,否则您将不会在 DataDog 中看到任何指标。
然后,您可以使用 tags
option 为特定 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
。
我在本地机器上使用 k6 执行负载测试,并使用 Datadog agent 可视化 Datadog 中的指标。
我想在 Datadog 中过滤 k6 指标,因为测试无法区分。
此时$test_run_id
只显示*
(参考下面的截图):
我按照 this the official doc 建议在 k6 配置中将 include_test_run_id
标志设置为 true
,但我没有成功。
这是我目前使用的 k6 配置(<YOUR_DATADOG_API_KEY>
替换为实际的 Datadog API 密钥):
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
}
]
}
}
};
您正在使用商业 k6 Cloud service (k6 cloud
) 的 DataDog 配置,而不是本地 运行 k6 测试 (k6 run
)。 test_run_id
是云服务中的一个概念,尽管它也很容易在本地模拟作为区分测试 运行s 的一种方式。
对于本地测试,您应该通过 运行ning k6 和 k6 run --out datadog script.js
启用 DataDog 输出。我假设您这样做了,否则您将不会在 DataDog 中看到任何指标。
然后,您可以使用 tags
option 为特定 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
。