PHP

PHP PHP 版 OpenTelemetry 的特定语言实现。

这是 OpenTelemetry PHP 的文档。OpenTelemetry 是一个可观察性框架——它包含 API、SDK 和工具,旨在帮助生成和收集应用程序遥测数据,如指标、日志和跟踪。本文档旨在帮助您了解如何开始使用 OpenTelemetry PHP。

状态和版本

OpenTelemetry PHP 主要功能组件的当前状态如下:

追踪指标日志
稳定稳定稳定

有关发布信息,包括 最新版本,请参阅 Releases

深入阅读

要求

OpenTelemetry for PHP SDK 旨在支持所有官方支持的 PHP 版本(根据 www.php.net/supported-versions),并且将在 PHP 版本生命周期结束后的 12 个月内停止支持该版本。

自动仪器化需要 PHP 版本 8.0+。

依赖项

一些 `SDK` 和 `Contrib` 包依赖于 HTTP Factories (PSR-17) 和 `php-http/async-client` 实现。您可以在 packagist.org 上找到实现这些标准的 composer 包。

请参阅 http-factory-implementations 以查找 `PSR-17 (HTTP factories)` 实现,并参阅 async-client-implementations 以查找 `php-http/async-client` 实现。

可选的 PHP 扩展

扩展用途
ext-grpc使用 gRPC 作为 OTLP 导出器的传输所需的
ext-mbstring比回退方案 `symfony/polyfill-mbstring` 性能更高
ext-zlib如果您想压缩导出的数据
ext-ffi基于 Fiber 的上下文存储
ext-protobuf显著提高 otlp+protobuf 导出的性能

ext-ffi

可以通过将 `OTEL_PHP_FIBERS_ENABLED` 环境变量设置为 `true` 来启用 Fiber 支持。在非 `CLI` SAPIs 中使用 Fiber 可能需要预加载绑定。一种实现此目的的方法是将 `ffi.preload` 设置为 `src/Context/fiber/zend_observer_fiber.h`,并将 `opcache.preload` 设置为 `vendor/autoload.php`。

ext-protobuf

原生的 protobuf 库(native protobuf library)比扩展慢得多。我们强烈建议使用该扩展。

设置

OpenTelemetry for PHP 通过 packagist 分发,包含多个包。我们建议您只安装您需要的包,通常最少需要 `API`、`Context`、`SDK` 和一个导出器。

我们强烈建议您的代码只依赖 `API` 包中的类和接口。


入门

快速上手 OpenTelemetry for PHP。

仪表化

OpenTelemetry PHP 的手动仪器化

使用仪器库

Exporters

上下文

了解上下文 API 在仪器化应用程序中的工作原理。

传播

PHP API 的上下文传播

资源

SDK

API 参考

示例

注册中心

OpenTelemetry PHP 的仪器化库、导出器和其他有用组件