open-feature / otel-hook
The OpenTelemetry hook package for OpenFeature
Requires
- php: ^8
- open-feature/sdk: ^2.0
- open-telemetry/api: ^0.0.17
Requires (Dev)
- 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
OpenTelemetry is an open specification for distributed tracing, metrics, and logging. It defines a semantic convention for feature flagging which is utilized in this hook to report flag evaluations.
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).
Autoloading
This package supports Composer autoloading. Thus, simply installing the package is all you need in order to immediately get started with OpenTracing for OpenFeature! Examples are provided that showcase the simple setup as well. Check out the Usage section for more info.
OpenTelemetry Package Status
The OpenTelemetry package for PHP is still in beta, so there could be changes required. However, it exposes global primitives for span retrieval that should not require any configuration upfront for the provider to just work.
Installation
composer require open-feature/otel-hook
Usage
The OpenTelemetryHook
should be registered to the OpenFeatureAPI globally for use across all evaluations.
It makes use of the open-telemetry/api
packages Globals
utility for current span retrieval, thus has
no dependency on configuration or injection of tracers.
use OpenFeature\Hooks\OpenTelemetry\OpenTelemetryHook; OpenTelemetryHook::register();
For more information on OpenTelemetry, 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
.