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

Ruby 用 OpenTelemetry インストルメンテーションを使用して Ruby アプリケーションを計測し、データを Splunk Observability Cloud に取り込みます。

注: 元の OpenTelemetry ドキュメントに変更があったため、「自動インストルメンテーション」は「ゼロコード インストルメンテーション」に変更されました。詳細については、「Splunk Observability Cloud のインストルメンテーションの方法」を参照してください。

OpenTelemetry Collector を使用して、Ruby アプリケーションのトレースを Splunk APM に送信できます。

前提条件

開始する前に、以下のコンポーネントがインストールされていることを確認してください。

  • Bundler バージョン 2.4 以上

  • Ruby バージョン 3.0 以上

サポートされているライブラリとフレームワークを使用しているか確認してください。サポートされているライブラリのリストについては、https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation を参照してください。

さらに、Splunk Distribution of OpenTelemetry Collector をインストールする必要があります。次のディストリビューションを使用できます。

Collector をインストールしたら、環境で Collector のインスタンスが実行されていることを確認します。

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

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

  1. opentelemetry-sdkopentelemetry-instrumentation-all パッケージをインストールします:

    bundle add opentelemetry-sdk opentelemetry-instrumentation-all
  2. プロジェクトディレクトリの config/initializers/ に、以下のコードで opentelemetry.rb というファイルを作成します:

    require 'opentelemetry/sdk'
    require 'opentelemetry/instrumentation/all'
    OpenTelemetry::SDK.configure do |c|
        c.use_all() # activates all instrumentation
    end
  3. インストルメンテーションされたアプリケーションを実行する

Splunk Observability Cloud に直接データを送信する

デフォルトでは、すべてのデータは Splunk Distribution of OpenTelemetry Collector のローカルインスタンスに送られます。

Splunk Observability Cloud に直接データを送信する必要がある場合は、以下の手順に従ってください:

  1. 以下のコマンドを使って、OpenTelemetry エクスポーターパッケージをインストールします:

    gem install opentelemetry-exporter-otlp
  2. config/exporters/opentelemetry.rb ファイルを編集して、OpenTelemetry エクスポーターパッケージを含めます。

    require 'opentelemetry/sdk'
    require 'opentelemetry/instrumentation/all'
    require 'opentelemetry-exporter-otlp'
    OpenTelemetry::SDK.configure do |c|
        c.use_all() # activates all instrumentation
    end
  3. エンドポイントを Splunk Observability Cloud に設定し、grpc プロトコルを使用してデータを送信します。次のコマンドを使用します。

    export OTEL_EXPORTER_OTLP_ENDPOINT="http://ingest.<realm>.signalfx.com"
    export OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
    export OTEL_EXPORTER_OTLP_TRACES_HEADERS="x-sf-token=<access_token>"

    <realm> を Splunk Observability Cloud レルムに、<access-token> をインジェスト権限を持つ Splunk Observability Cloud アクセストークンに置き換えてください。

    アクセストークンを取得するには、「Splunk Observability Cloud を使用したユーザー API アクセストークンの取得と管理」を参照してください。

    Splunk のレルムを見つけるには、「Splunk Observability Cloud の SSO 統合を設定する」でレルムに関する注意事項を参照してください。

  4. アプリケーションを再起動します。

さらに詳しく

設定例については、https://github.com/open-telemetry/opentelemetry-ruby/tree/main/examples を参照してください。