使用仪器库
在开发应用程序时,您可能会使用第三方库和框架来加速您的工作。如果您随后使用 OpenTelemetry instrumentation 您的应用程序,您可能希望避免花费额外的时间手动为您使用的第三方库和框架添加 traces、logs 和 metrics。
许多库和框架已经支持 OpenTelemetry,或者通过 OpenTelemetry instrumentation 进行支持,因此它们可以生成您可以导出到可观测性后端的 telemetry。
如果您正在 instrumentation 使用第三方库或框架的应用程序或服务,请遵循以下说明,了解如何为您的依赖项使用原生 instrumented 库和 instrumentation 库。
使用原生 instrumented 库
如果一个库默认包含 OpenTelemetry 支持,您可以通过在您的应用程序中添加和设置 OpenTelemetry SDK 来获取该库发出的 traces、metrics 和 logs。
该库可能需要一些额外的配置来进行 instrumentation。请参阅该库的文档以了解更多信息。
截至今天,我们不知道有任何 PHP 库原生集成了 OpenTelemetry。如果您知道此类库,请告知我们。
使用插装库
如果一个库不包含 OpenTelemetry 支持,您可以使用 instrumentation 库来为库或框架生成 telemetry 数据。
OpenTelemetry PHP 扩展包含许多常用 PHP 框架的仪表化库。例如,Laravel 仪表化会根据应用程序活动自动创建span。
设置
每个仪表化库都是一个 Composer 包。要安装它,请运行以下命令
php composer.phar install {name-of-instrumentation}:{version-number}
其中 {name-of-instrumentation} 是您要使用的特定仪表化的 Packagist 引用。
您可以通过将其标识符添加到 OTEL_PHP_DISABLED_INSTRUMENTATIONS 环境变量来关闭任何仪表化。
可用检测库
有关可用仪表化的列表,请参阅 Packagist 上的OpenTelemetry 仪表化库。
下一步
在设置好仪表化库后,您可能需要添加其他仪表化来收集自定义遥测数据。
您可能还希望配置一个合适的导出器,将遥测数据导出到一个或多个遥测后端。