Apache Kafka
Apache Kafka 是一个用于处理实时数据的流处理平台。使用 xk6-output-kafka 扩展,您可以将 k6 指标实时发送到 Kafka,并选择性地从 InfluxDB 中提取它们。
构建 k6 版本
要使用该扩展构建 k6 二进制文件,首先确保您的机器上已安装 Go 和 Git。
然后,打开您的终端并运行以下命令
# Install xk6
go install go.k6.io/xk6/cmd/xk6@latest
# Build the k6 binary
xk6 build --with github.com/grafana/xk6-output-kafka
... [INFO] Build environment ready
... [INFO] Building k6
... [INFO] Build complete: ./k6
xk6 将在本地文件夹中创建新的 k6 二进制文件。
注意
要了解如何构建自定义 k6 版本,请查看 xk6。
运行 k6 测试
您可以直接从命令行参数配置 broker(或多个)、topic 和消息格式,如下所示
k6 run --out xk6-kafka=brokers=broker_host:8000,topic=k6
或者如果您想要多个 broker
--out xk6-kafka=brokers={broker1,broker2},topic=k6,format=json
您还可以指定 k6 将使用的消息 format
。默认情况下,它将与 JSON 输出相同,但您也可以使用 InfluxDB 行协议供 InfluxDB 直接“消费”
--out xk6-kafka=brokers=someBroker,topic=someTopic,format=influxdb
您甚至可以修改一些 format
设置,例如 tagsAsFields
--out xk6-kafka=brokers=someBroker,topic=someTopic,format=influxdb,influxdb.tagsAsFields={url,myCustomTag}
选项
以下是可配置并传递给扩展的完整选项列表
名称 | 类型 | 描述 |
---|---|---|
K6_KAFKA_BROKERS | string | Broker 列表 |
K6_KAFKA_TOPIC | string | 要发送的 Topic 名称 |
K6_KAFKA_AUTH_MECHANISM | string | 认证机制。默认 none 。 |
K6_KAFKA_SASL_USER | string | Kafka 用户 |
K6_KAFKA_SASL_PASSWORD | string | Kafka 用户密码 |
K6_KAFKA_SSL | boolean | |
K6_KAFKA_VERSION | string | Kafka 版本。默认为最新版本 |
K6_KAFKA_INSECURE_SKIP_TLS_VERIFY | boolean | 是否应忽略 TLS 验证 |
K6_KAFKA_PUSH_INTERVAL | string | 指标聚合和上传到端点的时间间隔 |
K6_KAFKA_FORMAT | string | 消息格式。json 或 influxdb |
K6_KAFKA_LOG_ERROR | boolean | 布尔值,指示是否记录 Kafka 错误 |