在发送到 Datadog 的 k6 指标中包含测试运行 ID

问题描述 投票:0回答:3

我在本地计算机上使用 k6 来执行负载测试,并使用 Datadog 代理来可视化 Datadog 中的指标。

我想在 Datadog 中过滤 k6 指标,因为测试无法区分。

此时

$test_run_id
只显示
*
(参考下面的截图):

我遵循了this官方文档,建议在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
        }
    ]
    }
  }
};
javascript load-testing datadog k6
3个回答
5
投票

您正在将 DataDog 配置用于商业 k6 云服务 (

k6 cloud
),而不是本地运行 k6 测试 (
k6 run
)。
test_run_id
是云服务中的一个概念,尽管它也很容易在本地模拟作为区分测试运行的一种方式。

对于本地测试,您应该通过使用

k6 run --out datadog script.js
运行 k6 来启用 DataDog 输出。我假设您这样做了,否则您将不会在 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


0
投票

在脚本中使用

test_run_id
的一种方法是将其添加为选项中的标签。 例如:

export const options = {
    
  tags: {
    test_run_id: 'my-test-run-id',
  },
};

0
投票

我无法通过在 const 中添加标签来使其工作。 此外,添加非全局标签不会被 datadog 读取。 您是否能够在不添加 k6 标签参数的情况下找到解决方法?

© www.soinside.com 2019 - 2024. All rights reserved.