自动仪表化
在Ruby中,通过仪表化包以及最常用的opentelemetry-instrumentation-all
包进行自动仪表化。这些被称为仪表化库。
例如,如果您正在使用Rails并启用仪表化,则您运行的Rails应用程序将自动生成有关控制器的入站请求的遥测数据。
配置所有仪表化库
使用仪表化库的推荐方式是使用opentelemetry-instrumentation-all
包:
gem 'opentelemetry-sdk'
gem 'opentelemetry-exporter-otlp'
gem 'opentelemetry-instrumentation-all'
并在应用程序生命周期的早期进行配置。以下是使用Rails初始化程序的示例:
# config/initializers/opentelemetry.rb
require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'
require 'opentelemetry/instrumentation/all'
OpenTelemetry::SDK.configure do |c|
c.service_name = '<YOUR_SERVICE_NAME>'
c.use_all() # 启用所有的仪表化!
end
这将安装所有仪表化库并启用与应用程序中使用的库相匹配的库。
覆盖特定仪表化库的配置
如果您正在启用所有的仪表化但想要覆盖特定库的配置,可以调用带有配置映射参数的use_all
方法,其中键表示库,值是其特定的配置参数。
例如,以下是如何将所有的仪表化安装到应用程序中,除了Redis
仪表化库:
require 'opentelemetry/sdk'
require 'opentelemetry/instrumentation/all'
OpenTelemetry::SDK.configure do |c|
config = {'OpenTelemetry::Instrumentation::Redis' => { enabled: false }}
c.use_all(config)
end
要覆盖更多的仪表化库,请在config
映射中添加另一个条目。
配置特定的仪表化库
如果您希望更有选择地仅安装和使用特定的仪表化库,也可以做到。以下是如何仅使用Sinatra
和Faraday
,其中Faraday
使用了额外的配置参数。
首先,安装您想要使用的特定仪表化库:
gem install opentelemetry-instrumentation-sinatra
gem install opentelemetry-instrumentation-faraday
然后对它们进行配置:
require 'opentelemetry/sdk'
# 安装所有兼容的仪表化库,使用默认配置
OpenTelemetry::SDK.configure do |c|
c.use 'OpenTelemetry::Instrumentation::Sinatra'
c.use 'OpenTelemetry::Instrumentation::Faraday', { opt: 'value' }
end
下一步操作
仪表化库是生成有关您的Ruby应用程序的许多有用遥测数据的最简单方法。但是,它们不会生成与您的应用程序逻辑相关的数据!要做到这一点,您需要使用来自仪表化库的自动仪表化来丰富手动仪表化。
最后修改 December 10, 2023: translate (a4350d6e)