Splunk Observability Cloud に Ruby アプリケーションをインストルメンテーションする 🔗
注釈
Due to changes in the upstream OpenTelemetry documentation, 「automatic instrumentation」 has been changed to 「zero-code instrumentation」. For more information, see Instrumentation methods for 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アプリケーションをインストルメンテーションするには、以下の手順に従ってください:
opentelemetry-sdk
とopentelemetry-instrumentation-all
パッケージをインストールします:bundle add opentelemetry-sdk opentelemetry-instrumentation-all
プロジェクトディレクトリの config/initializers/ に、以下のコードで opentelemetry.rb というファイルを作成します:
require 'opentelemetry/sdk' require 'opentelemetry/instrumentation/all' OpenTelemetry::SDK.configure do |c| c.use_all() # activates all instrumentation end
インストルメンテーションされたアプリケーションを実行する
Splunk Observability Cloud に直接データを送信する 🔗
デフォルトでは、すべてのデータは Splunk Distribution of OpenTelemetry Collector のローカルインスタンスに送られます。
Splunk Observability Cloud に直接データを送信する必要がある場合は、以下の手順に従ってください:
以下のコマンドを使って、OpenTelemetry エクスポーターパッケージをインストールします:
gem install opentelemetry-exporter-otlp
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
エンドポイントを 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 レルムを見つけるには、レルムに関する注意事項 を参照してください。
アプリケーションを再起動します。
さらに詳しく 🔗
設定例については、https://github.com/open-telemetry/opentelemetry-ruby/tree/main/examples を参照してください。