Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud (OpenTelemetry) 用に Ruby アプリケーションをインストルメンテーションする » Splunk Observability Cloud 用に Ruby アプリケーションを手動でインストルメンテーションする

Splunk Observability Cloud 用に Ruby アプリケーションを手動でインストルメンテーションする 🔗

Ruby 用 OpenTelemetry インストルメンテーションを使ってアプリケーションを自動的にインストルメンテーションすれば、ほとんどのニーズに対応できます。アプリケーションを手動でインストルメンテーションする必要があるのは、例えば、スパンにカスタム属性を追加する必要があるときや、スパンを手動で生成する必要があるときだけです。

ライブラリの設置 🔗

手動インストルメンテーションでは、インストルメンテーションライブラリを個別に、あるいはまとめてインストールして有効にすることができます。これにより、プロジェクトのビルド時に Ruby が取得する gem を制御できます。

Ruby アプリケーションを手動でインストルメンテーションする方法については、OpenTelemetry.io の https://opentelemetry.io/docs/instrumentation/ruby/manual/ を参照してください。

個々のインストルメンテーションライブラリを手動でインストールし、アクティブ化します:

  1. gem install 、またはプロジェクトのGemfileに含めて、インストルメンテーション・ライブラリをインストールします。例えば、Sinatraインストルメンテーションをインストールするには、Gemfileに以下を追加します:

    gem "opentelemetry-instrumentation-sinatra", "~> 0.21"
    
  2. OpenTelemetry::sdk.configure メソッドに渡されるブロックで、SDK が各インストルメンテーション・ライブラリを使用するように設定します。Sinatraインストルメンテーションの場合、ブロックは以下の例のようになります:

    require "opentelemetry/sdk"
    OpenTelemetry::SDK.configure do |c|
       c.use "OpenTelemetry::Instrumentation::Sinatra", { opt: "value" }
    end
    

すべてのインストルメンテーションライブラリをインストールするには、以下の手順に従ってください:

  1. OpenTelemetry インストルメンテーションライブラリをインストールします:

    bundle add opentelemetry-sdk opentelemetry-instrumentation-all
    
  2. OpenTelemetry::sdk.configure メソッドに渡されるブロックで、SDK がすべてのインストルメンテーションライブラリを使用するように設定します:

    require "opentelemetry/sdk"
    require "opentelemetry/instrumentation/all"
    OpenTelemetry::SDK.configure do |c|
       c.use_all()
    end
    

Railsアプリケーションをインストルメンテーションする 🔗

Ruby on Railsアプリケーションをインストルメンテーションするには、以下の手順に従ってください:

  1. インストルメンテーション・ライブラリをプロジェクトの Gemfile に追加します:

    gem "opentelemetry-instrumentation-rails", "~> 0.27"
    

    bundle を使って gem をインストールすることもできます:

    bundle add opentelemetry-instrumentation-rails --version "~> 0.27"
    
  2. OpenTelemetry が利用可能なすべてのインストルメンテーション・ライブラリを使用するように設定します:

    # config/initializers/opentelemetry.rb
    require "opentelemetry/sdk"
    ...
    OpenTelemetry::SDK.configure do |c|
    c.use_all()
    end
    

    use_all 、特定のインストルメンテーションを無効にすることができます。例:

    OpenTelemetry::SDK.configure do |c|
    c.use_all({ 'OpenTelemetry::Instrumentation::ActiveRecord' => { enabled: false } })
    end
    
  3. 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/ を参照してください。

This page was last updated on 2024年03月12日.