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

Splunk OpenTelemetry Ruby エージェントは、Ruby アプリケーションやサービスを自動的にインストルメンテーションすることができます。次の手順に従って、操作を開始します。

Splunk Distribution of OpenTelemetry Ruby に含まれる Ruby エージェントは、サポートされているライブラリに動的にパッチを適用することで、Ruby アプリケーションを自動的にインストルメンテーションすることができます。

開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。

ガイド付きセットアップを使用してカスタマイズされた指示を生成する

環境とアプリケーションのための基本的なインストールコマンドをすべて生成するには、Ruby ガイド付きセットアップを使用してください。Ruby ガイド付きセットアップにアクセスするには、次の手順を実行してください。

  1. Splunk Observability Cloud にログインします。

  2. Ruby のガイド付きセットアップを開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:

    1. ナビゲーションメニューで、Data Management を選択します。

    2. Available integrations タブにアクセスするか、Deployed integrations タブで Add Integration を選択します。

    3. インテグレーションフィルターメニューで、By Product を選択します。

    4. APM 製品を選択します。

    5. Ruby タイルを選択し、Rubyガイド付きセットアップを開きます。

Splunk Distribution of OpenTelemetry Ruby を手動でインストールする

ガイド付きセットアップを使用しない場合は、以下の手順に従って Splunk Distribution of OpenTelemetry Ruby を手動でインストールしてください。

Rubyエージェントのインストールと有効化

Rubyエージェントを使用してアプリケーションを自動的にインストルメンテーションするには、以下の手順に従ってください:

  1. 要件を満たしているか確認してください。「OpenTelemetry Ruby の互換性と要件」を参照してください。

  2. 以下の gem をプロジェクトの Gemfile に追加します。

    gem "splunk-otel", "~> 1.0"
    gem "opentelemetry-instrumentation-all", "~> 0.27"

    bundle install を実行して gems をインストールします。

  3. Splunk::Otelconfigure メソッドに auto_instrument:true を渡してインストルメンテーションをアクティブにします:

    require "splunk/otel"
    require "opentelemetry/instrumentation/all"
    Splunk::Otel.configure(auto_instrument: true)
  4. OTEL_SERVICE_NAME 環境変数を設定します:

    Linux
    export OTEL_SERVICE_NAME=<yourServiceName>
    Windows PowerShell
    $env:OTEL_SERVICE_NAME=<yourServiceName>
  5. (オプション) Splunk OpenTelemetry Collector が別のホストで実行されている場合は、エンドポイント URL を設定します:

    Linux
    export OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort>
    Windows PowerShell
    $env:OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort>
  6. (オプション)デプロイ環境とサービスバージョンを設定します:

    Linux
    export OTEL_RESOURCE_ATTRIBUTES='deployment.environment=<envtype>,service.version=<version>'
    Windows PowerShell
    $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のサーバータイミングを有効にする

モバイルアプリケーションや Web アプリケーションからのリアルユーザーモニタリング(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 に直接データを送信する必要がある場合は、以下の環境変数を設定します:

Linux
export SPLUNK_ACCESS_TOKEN=<access_token>
export SPLUNK_REALM=<realm>
Windows PowerShell
$env:SPLUNK_ACCESS_TOKEN=<access_token>
$env:SPLUNK_REALM=<realm>

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

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

注: 取り込み API エンドポイントの詳細については、「トレースを APM に送信する」を参照してください。

ソースホストの指定

エージェントが使用するホストを上書きするには、環境変数 OTEL_RESOURCE_ATTRIBUTES を使用して、ホストの名前を希望するソースに設定します。

Windows PowerShell
$env:OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>
Linux
export OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>

Lambda 関数のインストルメンテーション

Splunk OpenTelemetry Lambda Layer を使用して AWS Lambda 関数をインストルメンテーションできます。詳細については、「AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする」を参照してください。