Ruby OpenTracing (已弃用)
OpenTracing 提供适用于分布式追踪的供应商中立的 API 和监控工具。 Instana Ruby gem 实现这些 API,并允许将 Instana gem 与 OpenTracing 调用配合使用。 现有使用 OpenTracing API 的应用程序,或者希望添加此功能支持的应用程序,均可轻松集成此 Ruby gem。
注意:OpenTracing 已被废弃。 Instana OpenTracing 的支持计划于 2025 年 6 月终止。
有关 OpenTracing, 的更多信息,请访问 OpenTracing。
为获得最佳效果,在使用 OpenTracing, 时,请参考 OpenTracing 页面中概述的最佳实践。
首先,将 Instana 追踪器设置为 OpenTracing: 的全局追踪器
require 'opentracing'
OpenTracing.global_tracer = ::Instana.tracer
然后, OpenTracing 代码即可正常运行:
begin
span = OpenTracing.start_span('job')
# The code to be instrumented
@id = User.find_by_name('john.smith')
span.set_tag(:job_id, @id)
rescue => e
span.set_tag(:error, e.message)
ensure
span.finish
end
示例
以下是调用 OpenTracing API 的一些代码的极简化示例。
# Note: The instana gem automatically sets the Instana tracer
# to `OpenTracing.global_tracer`. Once the gem is loaded, you can
# immediately start making OpenTracing calls.
#
require "opentracing"
entry_span = OpenTracing.start_span("HandMadeRackServer")
entry_span.set_tag(:'http.method', :get)
entry_span.set_tag(:'http.url', "/users")
entry_span.set_tag(:'span.kind', "entry")
intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
intermediate_span.finish()
db_span = OpenTracing.start_span('mydbspan', :child_of => entry_span)
db_span.set_tag(:'db.instance', "users")
db_span.set_tag(:'db.statement', "SELECT * FROM user_table")
db_span.set_tag(:'db.type', "mysql")
db_span.set_tag(:'db.user', "mysql_login")
db_span.set_tag(:'span.kind', "exit")
db_span.finish()
intermediate_span = OpenTracing.start_span("myintermediate", :child_of => entry_span)
intermediate_span.log("ALLOK", :message => "All seems ok")
intermediate_span.finish()
entry_span.set_tag(:'http.status_code', 200)
entry_span.finish()