CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/OpenTelemetry/转换遥测数据
文档目录
文档开始手动插桩使用插桩库导出器资源采样什么是 OpenTelemetry?
API 参考文档示例
快速入门安装 Collector
管理发行版故障排查Collector 扩容转换遥测数据架构定制 Collector
基准测试自适应性
支持库列表

OpenTelemetry

转换遥测数据

OpenTelemetry Collector 是在将数据发送到厂商或其他系统之前转换数据的便捷位置。 这样做通常出于数据质量、治理、成本和安全等方面的考虑。 来自 Collector Contrib 仓库的处理器支持对指标、 Span 和日志数据进行数十种不同的转换。以下各节提供了一些常用处理器的入门示例。 处理器的配置可能会对 Collector 性能产生重大影响,尤其是高级转换更是明显。...

OpenTelemetry Collector 是在将数据发送到厂商或其他系统之前转换数据的便捷位置。
这样做通常出于数据质量、治理、成本和安全等方面的考虑。

来自 Collector Contrib 仓库的处理器支持对指标、
Span 和日志数据进行数十种不同的转换。以下各节提供了一些常用处理器的入门示例。

处理器的配置可能会对 Collector 性能产生重大影响,尤其是高级转换更是明显。

基本筛选 {#basic-filtering}

处理器:
筛选处理器

筛选处理器允许用户使用
OTTL
来筛选遥测数据。符合任一条件的遥测数据将被丢弃。

例如,仅允许来自服务 app1、app2 和 app3 的 Span 数据,并丢弃来自所有其他服务的数据:

processors:
  filter/ottl:
    error_mode: ignore
    traces:
      span:
        - |
        resource.attributes["service.name"] != "app1" and
        resource.attributes["service.name"] != "app2" and
        resource.attributes["service.name"] != "app3"

要仅丢弃名为 service1 的服务的 Span,同时保留所有其他 Span:

processors:
  filter/ottl:
    error_mode: ignore
    traces:
      span:
        - resource.attributes["service.name"] == "service1"

筛选处理器文档中还有更多示例,
包括日志和指标的筛选。

添加或删除属性 {#adding-or-deleting-attributes}

处理器:
属性处理器
或资源处理器

属性处理器可用于更新、插入、删除或替换指标或链路中的现有属性。
例如,以下配置为所有 Span 添加一个名为 account_id 的属性:

processors:
  attributes/accountid:
    actions:
      - key: account_id
        value: 2245
        action: insert

资源处理器的配置与此相同,但仅适用于资源属性。
使用资源处理器可以修改与遥测相关的基础设施元数据。例如,以下配置插入 Kubernetes 集群名称:

processors:
  resource/k8s:
    attributes:
      - key: k8s.cluster.name
        from_attribute: k8s-cluster
        action: insert

重命名指标或指标标签 {#renaming-metrics-or-metric-labels}

处理器:
指标转换处理器

指标转换处理器与属性处理器有部分功能重叠,
但它还支持重命名以及其他特定于指标的功能。

processors:
  metricstransform/rename:
    transforms:
      - include: system.cpu.usage
        action: update
        new_name: system.cpu.usage_time

指标转换处理器还支持使用正则表达式对多个指标名称或标签同时应用转换规则。
以下示例将所有指标中的 cluster_name 标签重命名为 cluster-name:

processors:
  metricstransform/clustername:
    transforms:
      - include: ^.*$
        match_type: regexp
        action: update
        operations:
          - action: update_label
            label: cluster_name
            new_label: cluster-name

使用资源属性增强遥测数据 {#enriching-telemetry-with-resource-attributes}

处理器:
资源检测处理器和
K8s 属性处理器

这些处理器可用于通过相关的基础设施元数据增强遥测数据,以帮助团队快速识别基础设施是否正在影响服务健康或性能。

资源检测处理器会将相关的云环境或主机层信息添加到遥测数据中:

processors:
  resourcedetection/system:
    # 修改 detector 列表以匹配你的云环境
    detectors: [env, system, gcp, ec2, azure]
    timeout: 2s
    override: false

同样地,K8s 处理器会用相关 Kubernetes 元数据(如 Pod 名称、节点名称或工作负载名称)增强遥测数据。
Collector Pod 必须被配置为拥有对特定 Kubernetes RBAC API 的读取权限。
若使用默认选项,可使用空的配置块:

processors:
  k8sattributes/default:

设置 Span 状态 {#setting-a-span-status}

处理器:
转换处理器

使用转换处理器设置 Span 的状态。以下示例在 http.request.status_code 属性为 400 时将 Span 状态设置为 Ok:

transform:
  error_mode: ignore
  trace_statements:
    - set(span.status.code, STATUS_CODE_OK) where span.attributes["http.request.status_code"] == 400

你还可以使用转换处理器根据属性修改 Span 名称,或从 Span 名称中提取 Span 属性。
更多示例请参见该处理器的配置文件示例。

高级转换操作 {#advanced-transformations}

更高级的属性转换也可通过转换处理器实现。
转换处理器允许终端用户使用
OpenTelemetry 转换语言对指标、日志和链路数据执行转换操作。

文章大纲