Splunk Observability Cloud に PHP アプリケーションをインストルメンテーションする (非推奨)

SignalFx Tracing Library for PHPは、PHPアプリケーションを自動的にインストルメンテーションします。次の手順に従って、操作を開始します。

注: SignalFx Tracing Library for PHP は、2024 年 2 月 21 日の時点で廃止、2025 年 2 月 21 日にサポート終了(EOS)になります。それまでは、重大なセキュリティ修正とバグ修正のみが提供されます。EOS 日以降、ライブラリはアーカイブされ、維持されなくなります。

新規あるいは既存の PHP アプリケーションをインストルメンテーションしたい場合は、OpenTelemetry PHP instrumentation を使用してください。

SignalFx Tracing Library for PHPは、PHPアプリケーションを自動的にインストルメンテーションします。

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

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

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

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

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

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

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

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

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

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

SignalFx Tracing Library for PHPを手動でインストールします。

ガイド付きセットアップを使用しない場合は、以下の手順に従って SignalFx Tracing Library for PHP を手動でインストールしてください。

  1. PHP アプリケーションをインストルメンテーションします

  2. PHP インストルメンテーションをご利用の環境にデプロイします

  3. Splunk Observability Cloud 用の PHP インストルメンテーションを設定します

PHPアプリケーションのインストルメンテーション

以下の手順に従って、アプリケーションを自動的にインストルメンテーションしてください:

  1. 要件を満たしているか確認してください。「PHP インストルメンテーションの互換性と要件(非推奨)」を参照してください。

  2. 以下の場所からインストールスクリプトをダウンロードしてください:

    curl -LO  https://github.com/signalfx/signalfx-php-tracing/releases/latest/download/signalfx-setup.php
  3. インストールスクリプトを実行してインストールします:

    php signalfx-setup.php --php-bin=all
    注: --php-bin オプションを省略すると、対話的に PHP のインストールを選択することができます。
  4. 以下の環境変数を設定します:

    Apacheの設定
    # Add the following lines to your Apache configuration file
    
    SetEnv SIGNALFX_SERVICE_NAME="<my-service-name>"
    SetEnv SIGNALFX_ENDPOINT_URL='http://localhost:9411/api/v2/spans'
    SetEnv SIGNALFX_TRACE_GLOBAL_TAGS="deployment.environment:<my_environment>"
    ターミナル
    export SIGNALFX_SERVICE_NAME="<my-service-name>"
    export SIGNALFX_ENDPOINT_URL='http://localhost:9080/v1/trace'
    export SIGNALFX_TRACE_GLOBAL_TAGS="deployment.environment:<my_environment>"

    環境変数をグローバルに設定するか、PHP アプリケーションのスタートスクリプトを使用します。

  5. サーバーを再起動してください。

次に、PHP インストルメンテーションをご利用の環境にデプロイします。詳細については、「Deploy the PHP instrumentation in your environment」を参照してください。

注: スパンにカスタム属性を追加する必要がある場合、またはスパンを手動で生成する場合は、PHP アプリケーションまたはサービスを手動でインストルメントしてください。「Splunk Observability Cloud 用に PHP アプリケーションを手動でインストルメンテーションする」を参照してください。

INIファイルの設定

環境変数を設定しない場合、ライブラリは INI ファイルからデフォルト値を抽出します。 SIGNALFX_TRACE_ で始まる環境変数を使用して定義された設定のプレフィックスは signalfx.trace. です。 SIGNALFX_ で始まるその他の環境変数では、プレフィックスは signalfx. です。

signalfx-setup.php スクリプトを使用すると、手動で各ファイルを探すことなく INI ファイルオプションを設定できます。例:

php signalfx-setup.php --update-config --signalfx.endpoint_url=http://172.17.0.1:9080/v1/trace

これは、エンドポイントなど、システムで動作するすべての PHP サービスに共通するオプションを指定する際に便利です。

PHP インストルメンテーションを環境にデプロイする

PHP インストルメンテーションを Docker や Kubernetes にデプロイすることもできますし、Splunk Observability Cloud に直接データを送信することもできます。ご使用の環境に関する説明については、次のセクションを参照してください。

PHPインストルメンテーションをDockerにデプロイする

Docker を使って PHP インストルメンテーションをデプロイすることができます。次の手順に従って、開始してください。

  1. Docker がアクセスできる場所にスタートアップ シェルスクリプトを作成します。スクリプトには任意の名前を付けることができます。例:setup.sh。

  2. Instrument your PHP application」に記載されている環境変数をエクスポートするように、起動シェルスクリプトを編集します。

  3. 起動シェルスクリプトに以下のコマンドを追加し、PHPインストルメンテーションを初期化します:

    curl -LO https://github.com/signalfx/signalfx-php-tracing/releases/latest/download/signalfx-setup.php
    php signalfx-setup.php --php-bin=all
    php signalfx-setup.php --update-config --signalfx.endpoint_url=https://ingest.<realm>.signalfx.com/v2/trace/signalfxv1
    php signalfx-setup.php --update-config --signalfx.access_token=<access_token>
    php signalfx-setup.php --update-config --signalfx.service_name=<service-name>
  4. スクリプトに、supervisorctlsupervisordsystemd、または同様のコマンドを使用してアプリケーションを起動する行を追加します。次の例では supervisorctl を使用します。

    supervisor start my-php-app
  5. Dockerfileの最後に、新しく作成したシェルスクリプトを実行するコマンドを追加します。

  6. docker build コマンドを使用してコンテナを再構築します。

次に、Splunk Observability Cloud 用の PHP インストルメンテーションを設定します。「Splunk Observability Cloud 用の PHP インストルメンテーションを設定する」を参照してください。

注意: Xdebug 拡張機能は PHP のインストルメンテーションと互換性がないので、必ず無効にしてください。

KubernetesにPHPインストルメンテーションをデプロイする

KubernetesにPHPインストルメンテーションをデプロイするには、Kubernetesのリソースに環境変数を公開するようにKubernetes Downward APIを設定します。

次の例は、.spec.template.spec.containers.env セクションにエージェント設定を追加して、環境変数を公開するようにデプロイを更新する方法を示しています:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  selector:
    matchLabels:
      app: your-application
  template:
    metadata:
      labels:
        app: your-application
    spec:
      containers:
      - name: myapp
        image: <image-name>
        env:
          - name: HOST_IP
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: SIGNALFX_SERVICE_NAME
            value: "<service-name>"
          - name: SIGNALFX_ENDPOINT_URL
            value: "http://$(HOST_IP):9411/api/v2/spans"
          - name: SIGNALFX_TRACE_GLOBAL_TAGS
            value: "deployment.environment:<my_environment>"

次に、Splunk Observability Cloud 用の PHP インストルメンテーションを設定します。「Splunk Observability Cloud 用の PHP インストルメンテーションを設定する」を参照してください。

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

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

OTel Collector をバイパスして Splunk Observability Cloud に直接データを送信するには、以下の環境変数を設定します:

Apacheの設定
SetEnv SIGNALFX_ACCESS_TOKEN=<access_token>
SetEnv SIGNALFX_ENDPOINT_URL=https://ingest.<realm>.signalfx.com/v2/trace/signalfxv1
ターミナル
export SIGNALFX_ACCESS_TOKEN=<access_token>
export SIGNALFX_ENDPOINT_URL=https://ingest.<realm>.signalfx.com/v2/trace/signalfxv1

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

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

その他の情報

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

Splunk レルムを見つけるには、Configure SSO integrations for Splunk Observability Cloud のレルムに関する注意事項を参照してください。

次に、Splunk Observability Cloud 用の PHP インストルメンテーションを設定します。「Splunk Observability Cloud 用の PHP インストルメンテーションを設定する」を参照してください。

取り込み API エンドポイントの詳細については、Splunk Developer Portal の「Send APM traces」を参照してください。