PHP

PHP PHP における OpenTelemetry の言語固有の実装。

OpenTelemetry PHP のドキュメントへようこそ。 このセクションでは、OpenTelemetry の API と SDK を使い、PHP でメトリクス、ログ、トレースなどのテレメトリーデータを生成・収集する方法を紹介します。

これらのページは、OpenTelemetry PHP の利用を開始し、現在の機能とステータスを理解するための手助けとなるように作られています。

ステータスとリリース

OpenTelemetry PHPの主要な機能コンポーネントの現在のステータスは以下の通りです。

トレースメトリクスログ
StableStableStable

最新のリリースを含むリリース情報については、リリースをご覧ください。

参考資料

要件

OpenTelemetry SDK for PHP は、www.php.net/supported-versions に記載されている公式にサポートされているすべての PHP バージョンをサポートすることを目標としており、PHP バージョンの End of Life から12か月以内にサポートが終了します。

自動計装には PHP バージョン 8.0 以上が必要です。

依存関係

SDK および Contrib パッケージの一部は、HTTP Factories (PSR-17)php-http/async-client の両方の実装に依存しています。 適切な composer パッケージは packagist.org で見つけられます。

PSR-17 (HTTP factories) 実装は http-factory-implementations を、php-http/async-client 実装は async-client-implementations を参照してください。

オプションの PHP エクステンション

エクステンション目的
ext-grpcOTLP エクスポーターのトランスポートとして gRPC を使用する場合に必要
ext-mbstringフォールバックの symfony/polyfill-mbstring よりも高性能
ext-zlibエクスポートデータを圧縮する場合に使用
ext-ffiFiber ベースのコンテキストストレージ
ext-protobufotlp+protobuf エクスポートの大幅なパフォーマンス改善

ext-ffi

Fiber のサポートは、環境変数 OTEL_PHP_FIBERS_ENABLEDtrue に設定することで有効にできます。 非 CLI SAPI で Fiber を使用する場合、バインディングのプリロードが必要になることがあります。 これを実現する方法の1つは、ffi.preloadsrc/Context/fiber/zend_observer_fiber.h に、opcache.preloadvendor/autoload.php に設定することです。

ext-protobuf

ネイティブ protobuf ライブラリはエクステンションに比べて大幅に遅くなります。 エクステンションの使用を強く推奨します。

セットアップ

OpenTelemetry for PHP は packagist を通じて複数のパッケージとして配布されています。 必要なパッケージのみをインストールすることを推奨します。 最低限、通常は APIContextSDK およびエクスポーターが必要です。

コードが依存するのは API パッケージのクラスとインターフェイスのみにすることを強く推奨します。


はじめに

PHP 向け OpenTelemetry を使い始めましょう。

計装

OpenTelemetry PHP の手動計装

計装ライブラリの使用

Exporters

Context

Learn how the context API works in instrumented applications.

Propagation

Context propagation for the PHP API

Resources

SDK

API reference

Examples

Registry

Instrumentation libraries, exporters and other useful components for OpenTelemetry PHP