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

CnOps 智能运维与可观测社区

愿景

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

内容社区

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

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

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

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/OpenTelemetry/扩展
文档目录
文档开始手动插桩使用插桩库导出器资源采样什么是 OpenTelemetry?
API 参考文档示例
PHP 零代码插桩
快速开始配置Java 代理声明式配置支持的库禁用特定插桩注解使用 API 扩展插桩功能
应用服务器配置扩展性能
支持库列表

OpenTelemetry

扩展

扩展的设计目的是覆盖或自定义上游代理提供的插桩功能,而无需创建新的 OpenTelemetry 发行版本, 也无需以任何方式修改代理代码。 假设有一个经过插桩的数据库客户端,它会为每个数据库调用创建一个 Span,并从数据库连接中提取数据以提供 Span 属性。 以下是该场景下可通过使用扩展解决的示例用例: - "我根本不想要这个 Span": ...

介绍 {#introduction}

扩展的设计目的是覆盖或自定义上游代理提供的插桩功能,而无需创建新的 OpenTelemetry 发行版本,
也无需以任何方式修改代理代码。

假设有一个经过插桩的数据库客户端,它会为每个数据库调用创建一个 Span,并从数据库连接中提取数据以提供 Span 属性。
以下是该场景下可通过使用扩展解决的示例用例:

  • "我根本不想要这个 Span":

    创建一个扩展,通过提供新的默认设置来禁用所选插桩。

  • "我想编辑一些不依赖于任何数据库连接实例的属性":

    创建一个扩展,该扩展提供自定义的 SpanProcessor。

  • "我想编辑一些属性,且这些属性的值取决于特定的数据库连接实例。":

    创建一个带有新插桩逻辑的扩展,将其自己的通知注入到与原始插桩相同的方法中。
    你可以使用 order 方法确保它在原始插桩之后运行,并使用新信息增强当前 Span。

  • "我想移除一些属性":

    创建一个带有自定义导出器的扩展,或者使用 OpenTelemetry Collector 中的属性过滤功能。

  • "我不喜欢 OTel 生成的 Span。我想修改它们及其生命周期。":

    创建一个扩展,用于禁用现有的插桩逻辑,并替换为新的插桩逻辑,
    将 Advice 注入到与原始插桩相同(或更合适)的方法中。
    你可以为此编写自己的 Advice,直接使用现有的 Tracer 或对其进行扩展。
    由于拥有自己的 Advice,你可以控制所使用的 Tracer。

扩展示例 {#extension-examples}

要了解如何为 OpenTelemetry Java 插桩代理创建扩展的示例,请参阅构建并运行扩展项目。

文章大纲