telemetrygen 是 OpenTelemetry Collector Contrib 提供的数据生成器。它会生成合成的 OTLP 日志、链路追踪和指标,并提供可用于控制数据形态的命令行参数,例如多个服务、日志级别、span 状态和子 span,以及不同的指标类型。你可以用它来确认 ClickStack OpenTelemetry collector 是否正在接收数据,以及多样化且逼真的事件是否会出现在 ClickStack UI 中。
本指南假定 collector 已在 4317 (gRPC) 和 4318 (HTTP) 上开放 OTLP 端点,并且正在运行。
- 托管 ClickStack
- ClickStack 开源版
1
前置条件
本指南假定你已完成托管 ClickStack 入门指南,并且已有一个正在运行的 OpenTelemetry Collector,其 OTLP gRPC (4317) 和 HTTP (4318) 端点可从运行 telemetrygen 的机器访问。如果你已使用 OTLP_AUTH_TOKEN 保护该 Collector,请将该值妥善保存备用。2
安装 telemetrygen
直接通过它的 Docker 镜像运行telemetrygen (无需安装) 。定义一个简单的包装命令,方便保持下面的命令简洁易读;--add-host 可让容器访问监听在主机上的 collector:localhost:3
设置环境变量
如果 collector 已启用安全机制,请导出认证令牌:未受保护的 collectorClickStack OpenTelemetry collector 默认不启用身份验证。如果你尚未按照保护 collector中的说明设置
OTLP_AUTH_TOKEN,请从下面的辅助命令中删除 --otlp-header 这一行。tg 辅助函数,这样每条命令只需指定会变化的部分 (service、severity、status、属性) :4
生成日志
发送跨服务、贴近真实的不同严重级别日志:以信息级为主,夹杂少量警告和错误,而不是单一均匀的日志流:--service设置service.name,以便将事件归因到某个服务。--severity-text和--severity-number设置级别 (severity-number的取值范围为 1 到 24) 。--body设置日志消息。--otlp-attributes设置资源级属性 (key="value"、key=true或key=<integer>) 。--telemetry-attributes设置每条记录的属性。
5
生成链路追踪
发送来自多个健康服务和一个故障依赖项的多 span 链路追踪。这样可以让服务地图呈现更贴近真实的形态:大多数服务健康,只有一个服务报错,并填充错误相关视图:--child-spans为每个 trace 生成指定数量的子 span,让每个 trace 具有更真实的层次深度。--span-duration设置每个 span 的持续耗时 (例如120ms、2s) 。--status-code可设为Unset、Error、Ok(或0、1、2) 。使用Error可触发 error 视图。--span-links在 span 之间添加链接。--workers并行运行多个生成器,以产生更高、更多样的流量。
6
生成指标
发送三种常见的指标类型,让仪表盘中显示计数器、Gauge 和分布。与某些生成器不同,telemetrygen 在生成指标时会遵循 --duration 设置,因此无需手动停止:--metric-type 可接受 Gauge、Sum、Histogram 或 ExponentialHistogram。--otlp-metric-name 用于为该序列命名,便于你在 UI 中找到它;--aggregation-temporality 则可设为 delta 或 cumulative。7
在 ClickStack 中验证
从 ClickHouse Cloud 控制台打开 ClickStack UI。在Search 视图中,将时间范围设置为 Last 15 minutes,然后在 Logs 和 Traces 数据源之间切换。按 ServiceName 过滤,可查看 frontend、checkout、cart 和 payment 服务;按 SeverityText 过滤,可查找警告和错误日志。打开一条 payment trace,查看其子 span 和错误状态。打开 Chart Explorer,选择 Metrics,并将你在上面设置的某个指标名称绘制成图表 (例如 http.server.requests) ,以验证指标摄取。