邮件服务
当下单时,该服务将向用户发送确认邮件。
初始化追踪
您需要引用核心 OpenTelemetry SDK 和 exporter Ruby gems,以及任何自动插桩库所需的 gem(例如:Sinatra)。
require "opentelemetry/sdk"
require "opentelemetry/exporter/otlp"
require "opentelemetry/instrumentation/sinatra"
Ruby SDK 使用 OpenTelemetry 的标准环境变量自动配置 OTLP 导出、资源属性和服务名称。在初始化 OpenTelemetry SDK 时,您还可以指定要使用哪些自动插桩库(例如:Sinatra)。
OpenTelemetry::SDK.configure do |c|
c.use "OpenTelemetry::Instrumentation::Sinatra"
end
追踪
为自动插桩的 Span 添加属性
在自动插桩代码的执行过程中,您可以从上下文中获取当前 Span。
current_span = OpenTelemetry::Trace.current_span
使用 Span 对象的 add_attributes
方法可以将多个属性添加到 Span 中。
current_span.add_attributes({
"app.order.id" => data.order.order_id,
})
使用 Span 对象的 set_attribute
方法可以只添加单个属性。
span.set_attribute("app.email.recipient", data.email)
创建新的 Span
可以使用来自 OpenTelemetry Tracer 对象的 in_span
方法创建新的 Span,并将其放入活动上下文中。当与 do..end
块一起使用时,Span 将在块执行结束时自动结束。
tracer = OpenTelemetry.tracer_provider.tracer('emailservice')
tracer.in_span("send_email") do |span|
# 这里是 Span 上下文中的逻辑
end
指标
待定
日志
待定
最后修改 December 10, 2023: translate (a4350d6e)