open-feature / dd-trace-hook
The Datadog dd-trace hook package for OpenFeature
Requires
- php: ^8
- open-feature/sdk: ^2.0
Requires (Dev)
- datadog/dd-trace: ^0.82.0
- ergebnis/composer-normalize: ^2.25
- friendsofphp/php-cs-fixer: ^3.13
- hamcrest/hamcrest-php: ^2.0
- mdwheele/zalgo: ^0.3.1
- mikey179/vfsstream: v1.6.11
- mockery/mockery: ^1.5
- phan/phan: ^5.4
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ~1.10.0
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-phpunit: ^1.1
- psalm/plugin-mockery: ^0.9.1
- psalm/plugin-phpunit: ^0.18.0
- ramsey/coding-standard: ^2.0.3
- ramsey/composer-repl: ^1.4
- ramsey/conventional-commits: ^1.3
- roave/security-advisories: dev-latest
- spatie/phpunit-snapshot-assertions: ^4.2
- vimeo/psalm: ~4.30.0
README
Overview
dd-trace
is the Datadog tracing library for PHP. It is built on the OpenTracing specification.
This package also builds on various PSRs (PHP Standards Recommendations) such as the Logger interfaces (PSR-3) and the Basic and Extended Coding Standards (PSR-1 and PSR-12).
Design
OpenTracing is now an archived project of the CNCF, with suggestions to move towards OpenTelemetry. Feel free to check out our OpenTelemetry hook for OpenFeature as well. OpenTelemetry defines a semantic convention for feature flagging which is utilized in this hook to report flag evaluations, which is the basis for the log events being performed in this library for dd-trace
.
Autoloading
This package supports Composer autoloading. Thus, simply installing the package is all you need in order to immediately get started with Datadog's DDTrace for OpenFeature! Examples are provided that showcase the simple setup as well. Check out the Usage section for more info.
Installation
composer require open-feature/dd-trace-hook
Usage
The DDTraceHook
should be registered to the OpenFeatureAPI globally for use across all evaluations.
It makes use of the dd-trace
packages Globals
utility for current span retrieval, thus has
no dependency on configuration or injection of tracers.
use OpenFeature\Hooks\DDTrace\DDTraceHook; DDTraceHook::register();
For more information on DDTrace, check out their documentation.
For more examples, see the examples.
Development
PHP Versioning
This library targets PHP version 8.0 and newer. As long as you have any compatible version of PHP on your system you should be able to utilize the OpenFeature SDK.
This package also has a .tool-versions
file for use with PHP version managers like asdf
.
Installation and Dependencies
Install dependencies with composer install
. composer install
will update the composer.lock
with the most recent compatible versions.
We value having as few runtime dependencies as possible. The addition of any dependencies requires careful consideration and review.
Testing
Run tests with composer run test
.