注意
SignalFx Tracing Library for PHP は、2024年2月21日をもって非推奨となり、2025年2月21日にサポート終了 (EOS) となります。それまでは、重要なセキュリティ修正とバグ修正のみが提供されます。EOS の日付が過ぎると、ライブラリはアーカイブされ、保守されなくなります。
新規あるいは既存の PHP アプリケーションをインストルメンテーションしたい場合は、OpenTelemetry PHP instrumentation を使用してください。
Splunk Observability Cloud に PHP アプリケーションをインストルメンテーションする (非推奨) 🔗
SignalFx Tracing Library for PHPは、PHPアプリケーションを自動的にインストルメンテーションします。
開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。
ガイド付きセットアップを使用してカスタマイズされた指示を生成する 🔗
使用する環境やアプリケーションに合わせた基本的なインストールコマンドをすべて生成するには、PHPガイド付きセットアップを使用します。PHP ガイド付きセットアップにアクセスするには、以下の手順に従います:
Splunk Observability Cloud にログインします。
PHP ガイド付きセットアップ を開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:
ナビゲーションメニューで、
を選択します。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 のインストールを選択することができます。以下の環境変数を設定します:
# 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インストルメンテーションをご利用の環境にデプロイします。詳細は PHP インストルメンテーションを環境にデプロイする を参照ください。
注釈
スパンにカスタム属性を追加したり、手動でスパンを生成したい場合は、 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インストルメンテーションをデプロイすることができます。以下の手順に従ってください:
Dockerがアクセスできる場所にスタートアップ・シェル・スクリプトを作成します。スクリプトの名前は何でもよく、例えばsetup.shなど。
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 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 に直接データを送信するには、以下の環境変数を設定します:
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
を使用して、ホストの名前を希望するソースに設定します:
$env:OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>
export OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>
アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。
Splunk レルムを見つけるには、レルムに関する注意事項 を参照してください。
次に、Splunk Observability Cloud 用の PHP インストルメンテーションを設定します。詳細は Splunk Observability Cloud 用の PHP インストルメンテーションを設定する を参照してください。
注釈
取り込みAPIエンドポイントの詳細については、APMのトレースの送信 を参照してください。