Splunk Observability Cloud に PHP アプリケーションをインストルメンテーションする (非推奨)
SignalFx Tracing Library for PHPは、PHPアプリケーションを自動的にインストルメンテーションします。次の手順に従って、操作を開始します。
新規あるいは既存の PHP アプリケーションをインストルメンテーションしたい場合は、OpenTelemetry PHP instrumentation を使用してください。
開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。
ガイド付きセットアップを使用してカスタマイズされた指示を生成する
環境とアプリケーションのための基本的なインストールコマンドをすべて生成するには、PHP ガイド付きセットアップを使用してください。PHP ガイド付きセットアップにアクセスするには、以下の手順に従ってください。
-
Splunk Observability Cloud にログインします。
-
PHP ガイド付きセットアップを開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:
-
ナビゲーションメニューで、Data Management を選択します。
-
Available integrations タブにアクセスするか、Deployed integrations タブで Add Integration を選択します。
-
インテグレーションフィルターメニューで、By Product を選択します。
-
APM 製品を選択します。
-
PHP タイルを選択し、PHPガイド付きセットアップを開きます。
-
SignalFx Tracing Library for PHPを手動でインストールします。
ガイド付きセットアップを使用しない場合は、以下の手順に従って SignalFx Tracing Library for PHP を手動でインストールしてください。
PHPアプリケーションのインストルメンテーション
以下の手順に従って、アプリケーションを自動的にインストルメンテーションしてください:
-
要件を満たしているか確認してください。「PHP インストルメンテーションの互換性と要件(非推奨)」を参照してください。
-
以下の場所からインストールスクリプトをダウンロードしてください:
curl -LO https://github.com/signalfx/signalfx-php-tracing/releases/latest/download/signalfx-setup.php -
インストールスクリプトを実行してインストールします:
php signalfx-setup.php --php-bin=all注:--php-binオプションを省略すると、対話的に PHP のインストールを選択することができます。 -
以下の環境変数を設定します:
- 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 アプリケーションのスタートスクリプトを使用します。
-
サーバーを再起動してください。
次に、PHP インストルメンテーションをご利用の環境にデプロイします。詳細については、「Deploy the PHP instrumentation in your environment」を参照してください。
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 インストルメンテーションをデプロイすることができます。次の手順に従って、開始してください。
-
Docker がアクセスできる場所にスタートアップ シェルスクリプトを作成します。スクリプトには任意の名前を付けることができます。例:setup.sh。
-
「Instrument your PHP application」に記載されている環境変数をエクスポートするように、起動シェルスクリプトを編集します。
-
起動シェルスクリプトに以下のコマンドを追加し、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> -
スクリプトに、
supervisorctl、supervisord、systemd、または同様のコマンドを使用してアプリケーションを起動する行を追加します。次の例ではsupervisorctlを使用します。supervisor start my-php-app -
Dockerfileの最後に、新しく作成したシェルスクリプトを実行するコマンドを追加します。
-
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」を参照してください。