用途:在 OTel Collector 管道内转换、过滤和路由遥测数据,无需修改应用代码。适用于编写或调试 transform 处理器、filter 处理器和 routing connector 中的 OTTL 语句。
主要能力:按条件修改字段值;用 filter 处理器丢弃遥测;用 transform 在正确上下文中复制 resource 字段到 span 或 log;用 routing connector 路由到不同管道;用 keep_keys / delete_matching_keys 降低指标或追踪基数;用 extract_sum_metric / extract_count_metric 提取直方图聚合再丢弃原指标;用 SHA256 / replace_all_patterns 脱敏或假名化 PII。
关键概念:context 决定 attributes 的含义,context: resource 下 attributes["k"] 是资源属性,context: log 或 span 下是记录级属性,需用 resource.attributes["k"] 访问资源属性,上下文错误会静默返回 nil。logs 可用 resource、scope、log;traces 可用 resource、scope、span、spanevent;metrics 可用 resource、scope、metric、datapoint。指标级编辑(名称、描述、单位)用 context: metric,逐序列标签编辑用 context: datapoint。error_mode 默认 propagate 会在运行时错误时中断管道导致数据丢失,生产环境应显式设为 ignore。
用法要点:filter 放在 transform 之前;用 conditions 限定语句块(OR 语义);索引前加 IsMap、IsString、!= nil 等守卫;ParseJSON 是 Converter,必须包在 set、merge_maps 等 Editor 中;数值字符串比较前先转换。
限制:OTTL 不能解决接收器或导出器连通性、DNS、Kubernetes 服务发现、负载均衡、网关可达性、管道接线错误或遥测未到达处理器的问题;只能使用当前信号与上下文模型暴露的字段;Collector 看不到原始入站请求,上游 HTTP 头通常不可用;函数列表随 Collector 版本变化,当前签名需查阅上游文档。具体配置示例与参考文件内容暂未提供完整细节。