telemetrygen 来自 opentelemetry-collector-contrib,用于生成合成 OpenTelemetry 遥测数据,包含 traces、metrics、logs 三个子命令,均通过 OTLP 导出到采集器或后端。默认使用 gRPC 端口 4317,加 --otlp-http 切换到 HTTP 端口 4318;本地开发通常需加 --otlp-insecure 关闭 TLS。
用法上,先选信号类型,再用 --otlp-endpoint 指定端点(默认 localhost:4317 或 4318)。可用 --traces/--metrics/--logs 指定固定数量,或用 --duration 按时间生成,两者同时设置时 duration 覆盖数量。吞吐量等于 --workers 乘 --rate;不设 --rate 会以最大速度生成。--service 设置服务名,--otlp-attributes 添加资源级属性,--telemetry-attributes 添加 span/指标/日志级属性,属性值支持字符串、布尔、整数和切片格式。
追踪支持 --child-spans、--span-duration、--status-code、--span-links;指标支持 --metric-type、--otlp-metric-name、--aggregation-temporality、--trace-id/--span-id;日志支持 --body、--severity-text、--severity-number 及 trace 关联。还支持 TLS/mTLS、自定义请求头、批处理,以及 Docker 和 Kubernetes 运行。
限制与注意:对真实后端务必设置 --rate,避免压垮后端;端口与传输方式要匹配;生产环境不要用 --otlp-insecure-skip-verify,应改用 --ca-cert;--size 必须配合 --rate;资源属性与遥测属性层级不要混淆。安装可用 go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@v0.147.0 或拉取对应容器镜像。