Amazon CloudWatch
注意
内置的 StatsD 输出已在 k6 v0.47.0 中弃用,并在 v0.55.0 中移除。您可以继续使用 xk6-output-statsd 扩展或根据您的用例使用 OpenTelemetry 输出,将指标流式传输到 StatsD。
有关此更改原因的更多信息,您可以在 k6 仓库中关注此议题。
k6 可以通过 CloudWatch Agent 使用 xk6-output-statsd 扩展将指标数据发送到 Amazon CloudWatch。然后可以在仪表盘中可视化这些指标。
本指南介绍如何
- 运行 CloudWatch Agent
- 运行 k6 测试
- 在 Amazon CloudWatch 中可视化 k6 指标
开始之前
要使用 StatsD 输出选项,您必须使用 xk6-output-statsd 扩展构建 k6 二进制文件。更多详情请参阅 StatsD。
运行 CloudWatch Agent
我们假设您已经有一台同时支持运行 k6 和 CloudWatch Agent 的机器,该机器运行 GNU/Linux 或 Windows 系统。请直接下载适合您操作系统的 CloudWatch Agent 版本。
创建一个 IAM 角色,以便通过 Agent 将指标发送到 CloudWatch。然后,如果您在 Amazon EC2 上运行,只需将该角色附加到您的 EC2 实例,即可向 CloudWatch 发送指标。否则,如果您在本地服务器上运行,请按照此指南操作。
下载适合您操作系统的 CloudWatch Agent 安装包。例如,在 Debian 10 (Buster) 上,我们使用了以下链接。对于其他操作系统,请参考此指南
wget https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb
安装安装包
sudo dpkg -i amazon-cloudwatch-agent.deb
配置 Agent 以接收 k6 的数据。为此,创建一个名为“/opt/aws/amazon-cloudwatch-agent/etc/statsd.json”的文件,并将以下 JSON 配置对象粘贴到其中。此配置意味着 Agent 将监听端口号 8125,这是 k6 和 StatsD 的默认端口号。指标收集间隔为 5 秒,我们不对其进行聚合,因为稍后在 CloudWatch 中需要原始数据。
{ "metrics": { "namespace": "k6", "metrics_collected": { "statsd": { "service_address": ":8125", "metrics_collection_interval": 5, "metrics_aggregation_interval": 0 } } } }
运行以下命令启动 Agent
sudo amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/etc/statsd.json
您可以使用以下命令检查 Agent 的状态
amazon-cloudwatch-agent-ctl -a status
运行 k6 测试
Agent 运行后,您可以运行测试:
K6_STATSD_ENABLE_TAGS=true k6 run --out output-statsd script.js
确保您使用的是使用 xk6-output-statsd 扩展构建的 k6 二进制文件。
您可以查看 StatsD 输出页面以了解配置选项。
在 Amazon CloudWatch 中可视化 k6 指标
导出到 CloudWatch 的指标可视化是通过创建仪表盘并选择要显示的所需指标来完成的。
这是我们为可视化测试结果而创建的示例仪表盘。
上述仪表盘已导出为 JSON,可在此处获取。