OpenTelemetry API 桥接编辑

Elastic APM OpenTelemetry 桥接允许您使用 OpenTelemetry API 创建 Elastic APM 事务跨度。这允许用户利用 Elastic APM 代理的自动仪表功能,同时保持自定义仪表的供应商中立性。

如果在没有活动事务的情况下创建跨度,则会导致 Elastic APM 事务。内部跨度映射到 Elastic APM 跨度

入门编辑

开始使用 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 功能都受支持。

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

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