open-feature/dd-trace-hook

The Datadog dd-trace hook package for OpenFeature


README

a Latest Stable Version Total Downloads PHP 8.0+ License

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.