OpenTelemetry API 桥接

编辑

Elastic APM OpenTelemetry 桥接允许您使用 OpenTelemetry API 创建 Elastic APM TransactionsSpans。这允许用户利用 Elastic APM 代理的自动插桩,同时保持自定义插桩的厂商中立性。

如果在没有活动事务时创建 span,它将产生一个 Elastic APM Transaction。内部 span 将映射到 Elastic APM Span

入门

编辑

使用 OpenTelemetry 桥接的第一个步骤是安装 opentelemetry

pip install elastic-apm[opentelemetry]

或者如果您已经安装了 elastic-apm

pip install opentelemetry-api opentelemetry-sdk

用法

编辑
from elasticapm.contrib.opentelemetry import Tracer

tracer = Tracer(__name__)
with tracer.start_as_current_span("test"):
    # Do some work

或者

from elasticapm.contrib.opentelemetry import trace

tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("test"):
    # Do some work

Tracerget_tracer() 接受以下可选参数

  • elasticapm_client: 一个已经实例化的 Elastic APM 客户端
  • config: 一个配置字典,它将用于实例化一个新的 Elastic APM 客户端,例如 {"SERVER_URL": "https://example.org"}。有关详细信息,请参阅配置

Tracer 对象镜像了 OpenTelemetry Tracer 对象上的上游接口。

注意事项

编辑

并非所有 OpenTelemetry API 的功能都受支持。

不支持处理器、导出器、指标、日志、span 事件和 span 链接。

此外,由于实现细节,全局上下文 API 仅在激活的上下文中包含 span 时才起作用,并且不使用令牌。相反,全局上下文作为一个堆栈工作,当上下文分离时,先前活动的上下文将自动被激活。