菜单
开源

Datadog

注意

内置的 StatsD 输出在 k6 v0.47.0 中已被弃用,并在 v0.55.0 中移除。您可以继续使用 xk6-output-statsd 扩展或根据您的用例使用 OpenTelemetry 输出将指标流式传输到 StatsD。

有关此更改原因的更多信息,您可以在 k6 存储库中关注此问题

k6 可以将指标发送到 Datadog。这允许在 Datadog 中可视化性能测试指标并将其与其他监控指标关联起来。

本指南介绍如何

  • 运行 Datadog Agent
  • 运行 k6 测试
  • 在 Datadog 中可视化

开始之前

要使用 StatsD 输出选项,您需要使用 xk6-output-statsd 扩展构建 k6 二进制文件。有关详细信息,请参阅 StatsD

运行 Datadog Agent

为了将 k6 指标导入 Datadog,k6 通过 Datadog Agent 发送指标,Datadog Agent 负责收集、聚合并将指标转发到 Datadog 平台。

使用此命令将 Datadog Agent 服务作为 Docker 容器运行

bash
DOCKER_CONTENT_TRUST=1 \
docker run --rm -d \
    --name datadog \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    -v /proc/:/host/proc/:ro \
    -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
    -e DD_SITE="datadoghq.com" \
    -e DD_API_KEY=<YOUR_DATADOG_API_KEY> \
    -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=1 \
    -p 8125:8125/udp \
    datadog/agent:latest

对于 DD_SITE,请确保使用正确的 Datadog 站点 URL

<YOUR_DATADOG_API_KEY> 替换为您的 Datadog API 密钥

注意

有关其他信息,请参阅 Datadog Docker Agent 文档

DogStatsD

Datadog Agent 包含 DogStatsD 服务,用于收集和聚合指标。DogStatsD 实现了带有部分扩展的 StatsD 协议。例如,DogStatsD 标签允许收集带有标签的 k6 指标,以便区分不同 URL、响应状态、组等的请求。

上述说明在 Docker 容器中运行 DogStatsD 服务,但也可以作为 Host AgentKubernetesHelm 运行。

运行 k6 测试

一旦 Datadog Agent 服务运行起来,运行 k6 测试并将指标发送到 Agent:

bash
K6_STATSD_ENABLE_TAGS=true k6 run --out output-statsd script.js

确保您使用的是使用 xk6-output-statsd 扩展构建的 k6 二进制文件。

您可以查看 StatsD 输出页面获取配置选项。

在 Datadog 中可视化

测试运行时,k6 会定期将指标发送到 Datadog。默认情况下,这些指标名称前缀为 k6.

您可以使用 metrics explorermonitorscustom dashboards 实时可视化 k6 指标。

Datadog visualizing performance testing metrics

要了解所有 k6 指标类型,请阅读 k6 Metrics 指南

Datadog 首次检测到 k6.http_reqs 指标时,会自动安装 k6 集成磁贴,并将默认的 k6 面板添加到您的面板列表。

k6 Datadog Dashboard

您可以选择按照以下说明安装 k6 集成磁贴

  1. 登录 Datadog
  2. 在侧边栏菜单中,选择 集成 > 集成
  3. 搜索 k6,然后选择 k6 集成。
  4. 单击 配置 选项卡。
  5. 向下滚动并单击 安装集成 按钮。