Splunk Observability Cloud 用に Ruby アプリケーションを手動でインストルメンテーションする 🔗
Splunk Distribution of OpenTelemetry Ruby のエージェントを使用して、アプリケーションを自動的にインストルメンテーションすることで、ほとんどのニーズに対応できます。アプリケーションを手動でインストルメンテーションする必要があるのは、たとえばスパンにカスタム属性を追加する必要がある場合や、スパンを手動で生成する必要がある場合のみです。
ライブラリの設置 🔗
手動インストルメンテーションでは、インストルメンテーション・ライブラリを個別にインストールして有効にすることができます。これにより、プロジェクトのビルド時にRubyが取得するgemを制御できます。
Rubyアプリケーションを手動でインストルメンテーションする方法については、OpenTelemetry.ioの https://opentelemetry.io/docs/instrumentation/ruby/manual/ を参照してください。
インストルメンテーション・ライブラリを手動でインストールし、アクティブ化します:
gem install
、またはプロジェクトのGemfileに含めて、インストルメンテーション・ライブラリをインストールします。例えば、Sinatraインストルメンテーションをインストールするには、Gemfileに以下を追加します:gem "opentelemetry-instrumentation-sinatra", "~> 0.21"
Splunk::Otel.configure
メソッドに渡されるブロックで、SDK が各インストルメンテーション・ライブラリを使用するように設定します。Sinatraインストルメンテーションの場合、ブロックは以下の例のようになります:require "splunk/otel" Splunk::Otel.configure do |c| c.use "OpenTelemetry::Instrumentation::Sinatra", { opt: "value" } end
Railsアプリケーションをインストルメンテーションする 🔗
Ruby on Railsアプリケーションをインストルメンテーションするには、以下の手順に従ってください:
インストルメンテーション・ライブラリをプロジェクトの
Gemfile
に追加します:gem "opentelemetry-instrumentation-rails", "~> 0.27"
bundle
を使って gem をインストールすることもできます:bundle add opentelemetry-instrumentation-rails --version "~> 0.27"
OpenTelemetry が利用可能なすべてのインストルメンテーション・ライブラリを使用するように設定します:
# config/initializers/opentelemetry.rb require "splunk/otel" ... Splunk::Otel.configure do |c| c.use_all() end
use_all
、特定のインストルメンテーションを無効にすることができます。例:Splunk::Otel.configure do |c| c.use_all({ 'OpenTelemetry::Instrumentation::ActiveRecord' => { enabled: false } }) end
Railsだけをアクティブにするには、単一の
c.use
ステートメントを使用できます:Splunk::Otel.configure do |c| c.use 'OpenTelemetry::Instrumentation::Rails' end
例については、Rails 7 の例 を参照してください。
スパンとイベントの手動インストルメンテーション 🔗
Rubyの手動インストルメンテーションの例については、OpenTelemetryの公式ドキュメントを参照してください。
注釈
手動 OTel インストルメンテーションは、Splunk の自動 Ruby インストルメンテーションと完全に互換性があり、Splunk によって完全にサポートされています。