插桩

OpenTelemetry 如何促进插桩

要使系统具备可观测性,就必须进行插桩(Instrumentation): 也就是说,系统组件中的代码必须发出信号,如链路指标日志

使用 OpenTelemetry,你可以通过两种主要方式对代码进行插桩:

  1. 通过官方适用于大多数编程语言的 API 和 SDK代码开发方案
  2. 零代码方案

基于代码的方案可以让你从应用本身获取更深入的洞察和丰富的遥测数据。 它们使你能够使用 OpenTelemetry API 从应用中生成遥测数据,作为零代码方案生成遥测数据的重要补充。

零代码方案非常适合入门使用,或在你无法修改需要获取遥测数据的应用时使用。 它们可以从你所使用的库和/或应用运行的环境中提供丰富的遥测数据。 换句话说,它们提供的是关于应用边缘发生情况的信息。

你可以同时使用这两种方案。

OpenTelemetry 的其他优势

OpenTelemetry 不仅仅提供零代码和基于代码的遥测解决方案。以下内容也是 OpenTelemetry 的一部分:

  • 代码库可以将 OpenTelemetry API 作为依赖项进行集成,除非导入 OpenTelemetry SDK, 否则对使用该库的应用不会产生任何影响。
  • 对于每种[信号],你都有多种方法可以创建、处理和导出它们。
  • 借助实现中内建的上下文传播,你可以关联不同位置生成的信号。
  • 资源插桩作用域允许按不同实体对信号进行分组, 例如主机操作系统K8s 集群
  • 每个语言特定的 API 和 SDK 实现都遵循 OpenTelemetry 规范的要求和预期。
  • 语义约定提供了一个通用的命名模式,可用于在不同代码库和平台之间实现标准化。

零代码

了解如何在无需编写代码的情况下为应用添加可观测性

基于代码的方式

了解设置基于代码插桩的基本步骤

Libraries

Learn how to add native instrumentation to your library.