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'
或者在您的 Gemfile
中指定 require:
参数,例如 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
方法。行李项目将被丢弃,并显示警告日志消息。
日志编辑
目前不支持日志。