リソース
リソースは、リソース属性としてテレメトリーを生成するエンティティを表します。 たとえば、Kubernetes上のコンテナで実行されているテレメトリーを生成するプロセスは、プロセス名、ポッド名、ネームスペース、および場合によってはデプロイメント名を持ちます。 これらの4つの属性すべてをリソースに含めることができます。
オブザーバビリティバックエンドでは、リソース情報を使用して興味深い動作をより詳細に調査できます。 たとえば、トレースまたはメトリクスデータがシステムのレイテンシーを示している場合、それを特定のコンテナ、ポッド、またはKubernetesデプロイメントに絞り込むことができます。
リソース検出
PHP SDKはさまざまなソースからリソースを検出し、デフォルトでは利用可能なすべてのリソース検出器を使用します。
- 環境変数(
OTEL_RESOURCE_ATTRIBUTES、OTEL_SERVICE_NAME) - ホスト情報
- ホストオペレーティングシステム
- 現在のプロセス
- ランタイム
リソース検出の無効化
デフォルトではすべてのSDKリソース検出器が使用されますが、環境変数 OTEL_PHP_DETECTORS を使用して特定の検出器のみを有効にしたり、完全に無効にしたりできます。
envhostosprocessprocess_runtimesdksdk_providedall- すべてのリソース検出器を有効にするnone- リソース検出を無効にする
たとえば、env、host、sdk 検出器のみを有効にするには次のようにします。
env OTEL_PHP_DETECTORS=env,host,sdk \
php example.php
カスタムリソース検出器
汎用プラットフォームやベンダー固有の環境向けのリソース検出器は、composerパッケージとしてインストールできます。
たとえば、container リソース検出器をインストールして有効にするには次のようにします。
composer require open-telemetry/detector-container
env OTEL_PHP_RESOURCE_DETECTORS=container \
php example.php
インストールされた検出器は、デフォルトの all リソース検出器リストに自動的に含まれることに注意してください。
環境変数によるリソースの追加
必要なリソースに対応するSDK検出器がない場合、env 検出器が解釈する OTEL_RESOURCE_ATTRIBUTES 環境変数を使用して任意のリソースを追加できます。
この変数はカンマ区切りのキー=値ペアのリストを受け取ります。
たとえば次のようにします。
env OTEL_RESOURCE_ATTRIBUTES="service.name=my_service,service.namespace=demo,service.version=1.0,deployment.environment=development" \
php example.php
コードでのリソースの追加
カスタムリソースはコード内でも設定できます。 ここでは、デフォルトのリソース(前述のとおり検出されたもの)がカスタムリソースとマージされます。 リソースはトレーサープロバイダーに渡され、生成されたすべてのスパンに関連付けられます。
$resource = ResourceInfoFactory::defaultResource()->merge(ResourceInfo::create(Attributes::create([
ResourceAttributes::SERVICE_NAMESPACE => 'foo',
ResourceAttributes::SERVICE_NAME => 'bar',
ResourceAttributes::SERVICE_INSTANCE_ID => 1,
ResourceAttributes::SERVICE_VERSION => '0.1',
ResourceAttributes::DEPLOYMENT_ENVIRONMENT_NAME => 'development',
])));
$tracerProvider = new TracerProvider(
new SimpleSpanProcessor(
(new ConsoleSpanExporterFactory())->create()
),
null,
$resource
);
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!