OpenTelemetry API 桥接
编辑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
Tracer
和 get_tracer()
接受以下可选参数
-
elasticapm_client
:已实例化的 Elastic APM 客户端 -
config
:配置字典,将用于实例化新的 Elastic APM 客户端,例如{"SERVER_URL": "https://example.org"}
。有关更多信息,请参阅配置。
Tracer
对象镜像了OpenTelemetry Tracer
对象上的上游接口。
注意事项编辑
并非所有 OpenTelemetry API 功能都受支持。
不支持处理器、导出器、指标、日志、跨度事件和跨度链接。
此外,由于实现细节,全局上下文 API 仅在跨度包含在激活的上下文中时才有效,并且不使用令牌。相反,全局上下文作为堆栈工作,当上下文分离时,先前活动的上下文将自动激活。