OpenTracing API
编辑OpenTracing API
编辑Elastic APM OpenTracing 桥接允许使用 OpenTracing API 创建 Elastic APM Transactions
和 Spans
。换句话说,它将对 OpenTracing API 的调用转换为 Elastic APM,从而允许重用现有的检测。
服务的第一个跨度将转换为 Elastic APM Transaction
,后续跨度将映射到 Elastic APM Span
。
操作模式
编辑此桥接允许在 Elastic APM Agent 中结合使用不同的操作模式。
- 空操作
如果未运行 Elastic APM 代理,则桥接处于空操作模式,并且实际上不会记录和报告跨度。 - 混合搭配
如果您想利用 Elastic APM 的自动检测功能,但还想创建自定义跨度或使用 OpenTracing API 向 Elastic APM 创建的跨度添加自定义标签,您可以这样做。OpenTracing 桥接和标准 Elastic APM API 可以无缝交互。 - 手动检测
如果您不希望 Elastic APM 自动检测已知的框架,而是只依赖于手动检测,请禁用自动检测配置选项instrument
设置为false
。
入门
编辑在应用程序启动时 require 'elastic_apm/opentracing'
或将 require:
参数指定给您的 Gemfile
,例如 gem 'elastic_apm', require: 'elastic_apm/opentracing'
。
将 Elastic APM 设置为全局跟踪器
编辑::OpenTracing.global_tracer = ElasticAPM::OpenTracing::Tracer.new
Elastic APM 特定标签
编辑Elastic APM 定义了一些未包含在 OpenTracing API 中但在 Elastic APM 上下文中相关的标签。
-
type
- 设置事务的类型,例如request
、ext
或db
-
user.id
- 设置用户 ID,显示在 Elastic APM 应用程序中事务详细信息的“用户”选项卡中 -
user.email
- 设置用户电子邮件,显示在 Elastic APM 应用程序中事务详细信息的“用户”选项卡中 -
user.username
- 设置用户名,显示在 Elastic APM 应用程序中事务详细信息的“用户”选项卡中 -
result
- 设置事务的结果。覆盖success
的默认值。如果error
标签设置为true
,则默认值为error
。
注意事项
编辑并非所有 OpenTracing API 功能都受支持。
上下文传播
编辑此桥接仅支持 OpenTracing::FORMAT_RACK
格式,使用以 HTTP_
为前缀的大写名称的 HTTP 标头,就像 Rack 所做的那样。
OpenTracing::FORMAT_BINARY
当前不受支持。
跨度引用
编辑目前,此桥接仅支持 child_of
引用。其他引用,如 follows_from
尚未得到支持。
行李
编辑Span.set_baggage
方法不受支持。行李物品将被丢弃,并显示警告日志消息。
日志
编辑日志目前不受支持。