Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud に PHP アプリケーションをインストルメンテーションする » Splunk Observability Cloud 用に PHP アプリケーションを手動でインストルメンテーションする

Splunk Observability Cloud 用に PHP アプリケーションを手動でインストルメンテーションする 🔗

PHP 用 OpenTelemetryインストルメンテーションは、独自の手動インストルメンテーションを追加することで構築できるベースを提供します。自動インストルメンテーションと手動インストルメンテーションの両方を使うことで、アプリケーションやクライアント、フレームワークのロジックや機能をよりよくインストルメンテーションできるようになります。

カスタムスパンとトレースの作成 🔗

カスタムのスパンとトレースを作成するには、以下の手順に従ってください:

  1. インストルメンテーションライブラリを使用しない場合は、TracerProvider エントリポイントを作成します:

    $tracerProvider = Globals::tracerProvider();
    
  2. トレーサーを作成する:

    // 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
    );
    
  3. スパンの作成:

    <?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;
    }
    
  4. オプションで、スパンのメタデータを充実させる属性を設定します:

    $span->setAttribute(TraceAttributes::CODE_FUNCTION, 'rollOnce');
    $span->setAttribute(TraceAttributes::CODE_FILEPATH, __FILE__);
    

カスタムメトリクスの作成 🔗

カスタムメトリクスを作成するには、以下の手順に従います:

  1. 以下の依存関係を追加します:

    use OpenTelemetry\SDK\Metrics\MetricExporter\ConsoleMetricExporterFactory;
    use OpenTelemetry\SDK\Metrics\MeterProvider;
    use OpenTelemetry\SDK\Metrics\MetricReader\ExportingReader;
    
    require 'vendor/autoload.php';
    
  2. MeterProvider エントリポイントを作成する:

    $meterProvider = Globals::meterProvider();
    
  3. インストルメンテーションを作成します。例えば、ゲージ:

    $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();
    

This page was last updated on 2024年03月04日.