菜单
开源

OpenTelemetry

Grafana k6 可以使用实验性的 OpenTelemetry 输出 --out experimental-opentelemetry,将测试运行指标以 OpenTelemetry (OTEL) 指标格式 推送到 OTEL 指标收集器或支持 OTEL 指标格式的指标后端。

如有任何反馈、错误或建议,请随时在 k6 仓库中 直接提交 issue。我们也欢迎贡献!

指标映射

k6 会将所有 k6 指标类型 转换为等效的 OTEL 指标类型,并将所有 k6 标签转换为 OTEL 属性。如果可能,单位也会随指标一起传递。

k6 指标OpenTelemetry 指标
CounterFloat64CounterOption
GaugeFloat64ObservableGauge
Rate拆分为两个名为 metric_name.occurredmetric_name.totalInt64Counter 计数器。metric_name.occurred 仅计算非零出现次数,而 metric_name.total 记录正负出现次数的总和。未来可能会有所改变,详情请参阅 k6#4573
TrendFloat64Histogram

运行 k6 测试

您可以在运行测试时使用 --out experimental-opentelemetry 选项来使用此扩展

bash
K6_OTEL_GRPC_EXPORTER_INSECURE=true K6_OTEL_METRIC_PREFIX=k6_ k6 run --tag test-id=123 -o experimental-opentelemetry examples/script.js

配置

可以配置以下选项

名称
K6_OTEL_SERVICE_NAME用于指标导出的服务名称。默认值为 k6
K6_OTEL_SERVICE_VERSION用于指标导出的服务版本。默认为 k6 版本,例如 v0.54.0
K6_OTEL_METRIC_PREFIX指标前缀。默认为空。
K6_OTEL_FLUSH_INTERVAL从 k6 指标引擎刷新指标的频率。默认值为 1s
K6_OTEL_EXPORT_INTERVAL配置指标导出之间的间隔时间。默认值为 10s
K6_OTEL_HEADERS配置符合 W3C Correlation-Context 格式的请求头,不包含额外的分号分隔元数据(即“k1=v1,k2=v2”)。将这些请求头传递给 exporter。
K6_OTEL_TLS_INSECURE_SKIP_VERIFY禁用服务器证书验证。
K6_OTEL_TLS_CERTIFICATE配置 TLS 凭据的根 CA 证书文件路径。如果未提供但 TLS 已启用,则使用主机的根 CA 集合。
K6_OTEL_TLS_CLIENT_CERTIFICATE配置客户端证书文件路径。
K6_OTEL_TLS_CLIENT_KEY配置客户端密钥文件路径。
K6_OTEL_EXPORTER_TYPE配置要使用的 exporter 类型。有效选项为 httpgrpc。默认值为 grpc
K6_OTEL_GRPC_EXPORTER_INSECURE禁用 gRPC exporter 的客户端传输安全。
K6_OTEL_GRPC_EXPORTER_ENDPOINT配置 gRPC exporter 端点。默认值为 localhost:4317
K6_OTEL_HTTP_EXPORTER_INSECURE禁用 HTTP exporter 的客户端传输安全。
K6_OTEL_HTTP_EXPORTER_ENDPOINT配置 HTTP exporter 端点。必须仅为主机和端口,不带方案。默认值为 localhost:4318
K6_OTEL_HTTP_EXPORTER_URL_PATH配置 HTTP exporter 路径。默认值为 /v1/metrics

您还可以使用 OpenTelemetry SDK 配置环境变量来配置 OpenTelemetry 输出,例如 gRPC exporter 配置K6_OTEL_* 环境变量优先于 OpenTelemetry SDK 配置环境变量。