Splunk Observability Cloud 用に Ruby アプリケーションを手動でインストルメンテーションする
スパンにカスタム属性を追加する必要がある場合、またはスパンを手動で生成する場合は、Ruby アプリケーションを手動でインストルメンテーションしてください。Splunk Observability Cloud 用に Ruby アプリケーションをインストルメンテーションする方法については、続きをお読みください。
Ruby 用 OpenTelemetry インストルメンテーションを使用してアプリケーションを自動的にインストルメンテーションすれば、ほとんどのニーズに対応できます。アプリケーションを手動でインストルメンテーションする必要があるのは、たとえば、スパンにカスタム属性を追加する必要があるときや、スパンを手動で生成する必要があるときだけです。
ライブラリの設置
手動インストルメンテーションでは、インストルメンテーション ライブラリを個別または一緒にインストールして有効にすることができます。これにより、プロジェクトのビルド時に Ruby が取得する gem を制御できます。
Ruby アプリケーションを手動でインストルメンテーションする方法については、OpenTelemetry.io の https://opentelemetry.io/docs/instrumentation/ruby/manual/ を参照してください。
個々のインストルメンテーションライブラリを手動でインストールし、アクティブ化します:
-
gem installを使用するか、プロジェクトの Gemfile に含めて、インストルメンテーション ライブラリをインストールします。たとえば、Sinatra インストルメンテーションをインストールするには、Gemfile に次のように追加します。gem "opentelemetry-instrumentation-sinatra", "~> 0.21" -
OpenTelemetry::sdk.configureメソッドに渡されるブロックで、ソフトウェア開発キット(SDK)がそれぞれのインストルメンテーション ライブラリを使用するように設定します。Sinatra インストルメンテーションの場合、ブロックは次の例のようになります。require "opentelemetry/sdk" OpenTelemetry::SDK.configure do |c| c.use "OpenTelemetry::Instrumentation::Sinatra", { opt: "value" } end
すべてのインストルメンテーションライブラリをインストールするには、以下の手順に従ってください:
-
OpenTelemetry インストルメンテーションライブラリをインストールします:
bundle add opentelemetry-sdk opentelemetry-instrumentation-all -
OpenTelemetry::sdk.configureメソッドに渡されるブロックで、SDK がすべてのインストルメンテーションライブラリを使用するように設定します:require "opentelemetry/sdk" require "opentelemetry/instrumentation/all" OpenTelemetry::SDK.configure do |c| c.use_all() 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 "opentelemetry/sdk" ... OpenTelemetry::SDK.configure do |c| c.use_all() enduse_all関数を使うと、特定のインストルメンテーションを無効にすることができます。次の例を参照してください:OpenTelemetry::SDK.configure do |c| c.use_all({ 'OpenTelemetry::Instrumentation::ActiveRecord' => { enabled: false } }) end -
Railsだけをアクティブにするには、単一の
c.useステートメントを使用できます:OpenTelemetry::SDK.configure do |c| c.use 'OpenTelemetry::Instrumentation::Rails' end
例については、「Rails 7 の例」を参照してください。
スパンとイベントの手動インストルメンテーション
Ruby 用の手動インストルメンテーションの例については、OpenTelemetry の公式ドキュメント https://opentelemetry.io/docs/languages/ruby/instrumentation/ を参照してください。