auxmoney / opentracing-bundle-doctrine-dbal
Symfony Opentracing bundle extension for Doctrine DBAL and ORM
Installs: 575 898
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 5
Forks: 7
Open Issues: 3
Type:symfony-bundle
Requires
- php: ^8.0
- ext-json: *
- auxmoney/opentracing-bundle-core: ^1.3
- doctrine/dbal: ^2.11
- doctrine/doctrine-bundle: ^1.11|^2.0
- opentracing/opentracing: ^1.0.1
Requires (Dev)
- guzzlehttp/guzzle: ^7.5
- mtdowling/jmespath.php: ^2.6
- phpmd/phpmd: ^2.12
- phpspec/prophecy-phpunit: ^2.0
- phpstan/phpstan: ^1.5
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.6
- symfony/filesystem: *
- symfony/process: *
- symfony/yaml: *
README
This bundle adds automatic spanning for Doctrine DBAL connections to the OpentracingBundle.
Installation
Prerequisites
This bundle is only an additional plugin and should not be installed independently. See its documentation for more information on installing the OpentracingBundle first.
Require dependencies
After you have installed the OpentracingBundle:
- require the dependencies:
composer req auxmoney/opentracing-bundle-doctrine-dbal
Enable the bundle
If you are using Symfony Flex, you are all set!
If you are not using it, you need to manually enable the bundle:
- add bundle to your application:
# Symfony 3: AppKernel.php $bundles[] = new Auxmoney\OpentracingDoctrineDBALBundle\OpentracingDoctrineDBALBundle();
# Symfony 4+: bundles.php Auxmoney\OpentracingDoctrineDBALBundle\OpentracingDoctrineDBALBundle::class => ['all' => true],
Configuration
You can optionally configure environment variables, however, the default configuration will run fine out of the box for most DBAL based applications. If you cannot change environment variables in your project, you can alternatively overwrite the container parameters directly.
Hint: you can use true
, on
, yes
or 1
to enable an environment variable.
Usage
When querying databases using Doctrine DBAL (or higher level packages like Doctrine ORM), spans reflecting these queries are automatically generated and added to the trace. The generated tags can contain:
Limitations
db.row_count
: the correctness of this value depends heavily on the implementation of theDoctrine\DBAL\Driver\Statement
of the driver for the database. For example, if you are using a PDO driver, keep in mind: "For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement.". See the official PHP documentation for more information on this particular topic. If you are getting different results than expected, consult the documentation for the used driver.
Development
Be sure to run
composer run-script quality
every time before you push code changes. The tools run by this script are also run in the CI pipeline.