Splunk Observability Cloud に Ruby アプリケーションをインストルメンテーションする 🔗
Splunk Distribution of OpenTelemetry Ruby に含まれる Ruby エージェントは、サポートされているライブラリに動的にパッチを適用することで、Ruby アプリケーションを自動的にインストルメンテーションすることができます。
開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。
ガイド付きセットアップを使用してカスタマイズされた指示を生成する 🔗
環境とアプリケーションのための基本的なインストールコマンドをすべて生成するには、Rubyガイド付きセットアップを使用してください。Rubyガイド付きセットアップにアクセスするには
Splunk Observability Cloud にログインします。
Ruby ガイド付きセットアップ を開いてください。オプションで、ガイド付きセットアップに自分で移動することもできます:
ナビゲーションメニューで、
を選択します。Go to the Available integrations tab, or select Add Integration in the Deployed integrations tab.
インテグレーションフィルターーメニューで、By Product を選択します。
APM 製品を選択します。
Ruby タイルを選択し、Rubyガイド付きセットアップを開きます。
Splunk Distribution of OpenTelemetry Ruby を手動でインストールする 🔗
ガイド付きセットアップを使用しない場合は、以下の手順に従って Splunk Distribution of OpenTelemetry Ruby を手動でインストールしてください:
Rubyエージェントのインストールと有効化 🔗
Rubyエージェントを使用してアプリケーションを自動的にインストルメンテーションするには、以下の手順に従ってください:
条件を満たしているか確認してください。OpenTelemetry Ruby の互換性と要件 を参照してください。
以下のgemをプロジェクトのGemfileに追加します:
gem "splunk-otel", "~> 1.0" gem "opentelemetry-instrumentation-all", "~> 0.27"
bundle install
を実行して gems をインストールします。Splunk::Otel
のconfigure
メソッドにauto_instrument:true
を渡してインストルメンテーションをアクティブにします:require "splunk/otel" require "opentelemetry/instrumentation/all" Splunk::Otel.configure(auto_instrument: true)
環境変数
OTEL_SERVICE_NAME
を設定します:export OTEL_SERVICE_NAME=<yourServiceName>
$env:OTEL_SERVICE_NAME=<yourServiceName>
(オプション) Splunk OpenTelemetry Collector が別のホストで実行されている場合は、エンドポイント URL を設定します:
export OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort>
$env:OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort>
(オプション)デプロイ環境とサービスバージョンを設定します:
export OTEL_RESOURCE_ATTRIBUTES='deployment.environment=<envtype>,service.version=<version>'
$env:OTEL_RESOURCE_ATTRIBUTES='deployment.environment=<envtype>,service.version=<version>'
APM にデータが表示されない場合は、Splunk Observability Cloud の Ruby インストルメンテーションのトラブルシューティング を参照してください。
インストルメンテーション・ライブラリを手動でインストールし、有効にしたい場合は、Splunk Observability Cloud 用に Ruby アプリケーションを手動でインストルメンテーションする を参照してください。
Ruby on Railsアプリケーションのインストルメンテーション 🔗
Ruby on Railsアプリケーションをインストルメンテーションするには、Railsアプリケーションをインストルメンテーションする を参照してください。
RUMのサーバータイミングを有効にする 🔗
モバイルアプリケーションやウェブアプリケーションからのリアルユーザーモニタリング (RUM) リクエストと、Ruby アプリケーションやサービスが生成するサーバー・トレース・データを結びつけることができます。詳しくは サーバートレース情報 を参照してください。
Rubyエージェントの設定 🔗
ほとんどの場合、入力が必要な設定項目はサービス名だけです。また、デプロイ環境、サービスバージョン、エンドポイントなど、その他の基本設定も定義できます。
トレース伝播フォーマットの変更、トレースとログの相関、サーバートレースデータの設定など、Ruby エージェントの高度な設定については、Splunk Observability Cloud 用の Ruby エージェントを設定する を参照してください。
KubernetesにRubyエージェントをデプロイする 🔗
KubernetesにRubyエージェントをデプロイするには、Kubernetesのリソースに環境変数を公開するようにKubernetes Downward APIを設定します。
次の例は、.spec.template.spec.containers.env
セクションにエージェント設定を追加して、環境変数を公開するようにデプロイを更新する方法を示しています:
apiVersion: apps/v1
kind: Deployment
spec:
selector:
matchLabels:
app: your-application
template:
spec:
containers:
- name: myapp
env:
- name: SPLUNK_OTEL_AGENT
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://$(SPLUNK_OTEL_AGENT):4318"
- name: OTEL_SERVICE_NAME
value: "<serviceName>"
- name: OTEL_RESOURCE_ATTRIBUTES
value: "deployment.environment=<environmentName>"
Splunk Observability Cloud に直接データを送信する 🔗
デフォルトでは、すべてのテレメトリは Splunk Distribution of OpenTelemetry Collector のローカルインスタンスに送信されます。
Splunk Observability Cloud に直接データを送信する必要がある場合は、以下の環境変数を設定します:
export SPLUNK_ACCESS_TOKEN=<access_token>
export SPLUNK_REALM=<realm>
$env:SPLUNK_ACCESS_TOKEN=<access_token>
$env:SPLUNK_REALM=<realm>
アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。
Splunk レルムを見つけるには、レルムに関する注意事項 を参照してください。
注釈
取り込みAPIエンドポイントの詳細については、APMのトレースの送信 を参照してください。
ソースホストの指定 🔗
エージェントが使用するホストを上書きするには、環境変数 OTEL_RESOURCE_ATTRIBUTES
を使用して、ホストの名前を希望するソースに設定します:
$env:OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>
export OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>
Lambda 関数のインストルメンテーション 🔗
Splunk OpenTelemetry Lambda Layer を使用して AWS Lambda 関数をインストルメンテーションできます。詳細は AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする を参照してください。