Splunk Observability Cloud 用に PHP アプリケーションを手動でインストルメンテーションする
スパンにカスタム属性を追加する場合、またはメトリクスを手動で生成する場合は、 PHP アプリケーションを手動でインストルメンテーションしてください。Splunk Observability Cloud に PHP アプリケーションを手動でインストルメンテーションする方法については、続きをお読みください。
PHP 用 OpenTelemetry インストルメンテーションは、独自の手動インストルメンテーションを追加することによって構築できるベースを提供します。自動インストルメンテーションと手動インストルメンテーションの両方を使うことで、アプリケーションやクライアント、フレームワークのロジックや機能をよりよくインストルメンテーションできるようになります。
カスタムスパンとトレースの作成
カスタムのスパンとトレースを作成するには、以下の手順に従ってください:
-
インストルメンテーション ライブラリを使用しない場合は、
TracerProviderエントリポイントを作成します。$tracerProvider = Globals::tracerProvider(); -
トレーサーを作成する:
// Acquire the tracer only where needed $tracer = $tracerProvider->getTracer( 'instrumentation-scope-name', // Name (Required) 'instrumentation-scope-version', // Version 'http://example.com/my-schema', // Schema URL ['foo' => 'bar'] // Resource attributes ); -
スパンの作成:
<?php public function roll($rolls) { $span = $this->tracer->spanBuilder("rollTheDice")->startSpan(); $result = []; for ($i = 0; $i < $rolls; $i++) { $result[] = $this->rollOnce(); } $span->end(); return $result; } -
オプションで、スパンのメタデータを充実させる属性を設定します。
$span->setAttribute(TraceAttributes::CODE_FUNCTION, 'rollOnce'); $span->setAttribute(TraceAttributes::CODE_FILEPATH, __FILE__);
カスタムメトリクスの作成
カスタムメトリクスを作成するには、以下の手順に従います:
-
以下の依存関係を追加します:
use OpenTelemetry\SDK\Metrics\MetricExporter\ConsoleMetricExporterFactory; use OpenTelemetry\SDK\Metrics\MeterProvider; use OpenTelemetry\SDK\Metrics\MetricReader\ExportingReader; require 'vendor/autoload.php'; -
MeterProviderエントリポイントを作成する:$meterProvider = Globals::meterProvider(); -
ゲージなどのインストルメントを作成します。
$queue = [ 'job1', 'job2', 'job3', ]; $reader = $meterProvider ->getMeter('demo_meter') ->createObservableGauge('queued', 'jobs', 'The number of jobs enqueued') ->observe(static function (ObserverInterface $observer) use (&$queue): void { $observer->observe(count($queue)); }); $reader->collect(); array_pop($queue); $reader->collect();