open-telemetry / opentelemetry-auto-pdo
OpenTelemetry auto-instrumentation for PDO
Installs: 780 335
Dependents: 2
Suggesters: 1
Security: 0
Stars: 10
Watchers: 3
Forks: 2
pkg:composer/open-telemetry/opentelemetry-auto-pdo
Requires
- php: ^8.2
- ext-opentelemetry: *
- ext-pdo: *
- open-telemetry/api: ^1.0
- open-telemetry/sem-conv: ^1.36
- symfony/polyfill-mbstring: ^1.31
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- open-telemetry/sdk: ^1.0
- open-telemetry/test-utils: ^0.2.0
- phan/phan: ^5.0
- php-http/mock-client: *
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.19.2
- vimeo/psalm: 6.4.0
Suggests
- ext-mbstring: For better performance than symfony/polyfill-mbstring
README
This is a read-only subtree split of https://github.com/open-telemetry/opentelemetry-php-contrib.
OpenTelemetry PDO (PHP DataObjects) auto-instrumentation
Please read https://opentelemetry.io/docs/instrumentation/php/automatic/ for instructions on how to install and configure the extension and SDK.
Overview
Auto-instrumentation hooks are registered via composer, and spans will automatically be created for
selected PDO and PDOStatement methods.
Configuration
The extension can be disabled via runtime configuration:
OTEL_PHP_DISABLED_INSTRUMENTATIONS=pdo
In case UI used to view telemetry data does not support links between spans (for example newrelic),
you can optionally enable setting db statements attribute to fetchAll and execute spans using
configuration directive:
otel.instrumentation.pdo.distribute_statement_to_linked_spans = true
or environment variable:
OTEL_PHP_INSTRUMENTATION_PDO_DISTRIBUTE_STATEMENT_TO_LINKED_SPANS=true
Database Context Propagation
Enable context propagation for database queries (pdo_mysql, pdo_pgsql only) by installing the following packages:
composer require open-telemetry/opentelemetry-sqlcommenter
Currently, only the following functions support context propagation:
PDO::queryPDO::exec