Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
Présentation
Cette page décrit comment instrumenter votre application PHP avec le SDK Datadog Feature Flags. Le SDK PHP utilise la Remote Configuration du SDK Datadog pour recevoir les mises à jour des feature flags en temps réel.
Le SDK PHP fournit deux API d’application :
API PHP Datadog : Utilisez DDTrace\FeatureFlags\Client avec des applications PHP 7 ou PHP 8.
Adaptateur OpenFeature : Utilisez DDTrace\OpenFeature\DataDogProvider avec des applications PHP 8 qui utilisent l’API standard OpenFeature.
L’évaluation des feature flags est locale et rapide. Le SDK utilise des données de configuration mises en cache localement, de sorte qu’aucune requête réseau n’est effectuée lors de l’évaluation.
Prérequis
Avant de configurer le SDK PHP Feature Flags, assurez-vous de disposer des éléments suivants :
Datadog PHP SDKdatadog/dd-trace version 1.21.0 ou ultérieure
Environnement d’exécution PHP pris en charge : PHP 7 ou ultérieur avec l’API PHP Datadog, ou PHP 8 ou ultérieur avec l’adaptateur OpenFeature
OpenFeature PHP SDKopen-feature/sdk version 2.1 ou ultérieure, si vous utilisez l’adaptateur OpenFeature
Définissez les variables d’environnement suivantes :
# Required: Enable the feature flags providerexportDD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true# Required: Enable Remote Configuration in the SDKexportDD_REMOTE_CONFIG_ENABLED=true# Required: Service identificationexportDD_SERVICE=<YOUR_SERVICE_NAME>
exportDD_ENV=<YOUR_ENVIRONMENT>
exportDD_VERSION=<YOUR_APP_VERSION>
# Required for flag evaluation metricsexportDD_METRICS_OTEL_ENABLED=true
Le EXPERIMENTAL_ Le préfixe est conservé pour la rétrocompatibilité ; le provider lui-même est stable.
Pour configurer feature_flag.evaluations, y compris la version requise du traceur et la configuration OTLP de l’Agent, consultez Configurer les métriques d’évaluation des Feature Flags côté serveur. Pour plus d’informations sur les graphiques disponibles, consultez [Feature Flag Graphs][7].
Installation
Le feature flagging est fourni par Application Performance Monitoring (APM). Installez et configurez le traceur PHP Datadog en suivant Tracing PHP Applications.
Si vous utilisez l’adaptateur OpenFeature dans une application PHP 8, installez le SDK PHP OpenFeature :
composer require open-feature/sdk:^2.1
Initialiser le SDK
Choisissez l’API qui correspond à votre environnement d’exécution PHP et à l’architecture de votre application.
PHP 7 et PHP 8 : Datadog API
Utilisez DDTrace\FeatureFlags\Client directement dans les applications PHP 7 ou PHP 8 :
Le fournisseur OpenFeature renvoie des valeurs par défaut jusqu’à ce que Remote Configuration fournisse la configuration initiale des feature flags. Initialisez le fournisseur dès le démarrage de l’application afin que la configuration des feature flags ait le temps de se charger avant que la logique métier ne les évalue.
Définir le contexte d’évaluation
Définissez un contexte d’évaluation qui identifie l’utilisateur ou l’entité pour le ciblage des Feature Flags. La clé de ciblage est utilisée pour une distribution cohérente du trafic, comme les déploiements progressifs. Des attributs supplémentaires permettent des règles de ciblage, telles que « activer pour les utilisateurs aux États-Unis » ou « activer pour les utilisateurs de niveau premium ».
Datadog API
Pour l’API PHP Datadog, transmettez le contexte sous forme de tableau avec les clés targetingKey et attributes :
Les attributs du contexte d'évaluation doivent être des valeurs primitives plates : chaînes de caractères, nombres et booléens. Les tableaux imbriqués, les objets et les valeurs nulles sont ignorés pour le ciblage et le rapport d'exposition ;
Évaluer les Feature Flags
Après avoir configuré le client, vous pouvez évaluer les feature flags dans toute votre application. Chaque feature flag est identifié par une clé de chaîne unique et évalué avec une méthode typée qui renvoie une valeur du type attendu. Si le feature flag n’existe pas ou ne peut pas être évalué, le SDK renvoie la valeur par défaut fournie.
Feature Flags booléens
Utilisez getBooleanValue pour les feature flags qui représentent des conditions activées/désactivées ou vrai/faux :
Pour les feature flags numériques, utilisez getIntegerValue ou getFloatValue. Ces méthodes sont appropriées lorsqu’une fonctionnalité dépend d’un paramètre numérique tel qu’une limite, un pourcentage ou un multiplicateur :
Lorsque vous avez besoin de plus que la simple valeur du feature flag, utilisez les méthodes get<Type>Details. Celles-ci renvoient à la fois la valeur évaluée et les métadonnées expliquant l’évaluation :
Vous pouvez évaluer des Feature Flags sans fournir de contexte d’évaluation. Ceci est utile pour les feature flags globaux qui ne nécessitent pas de ciblage spécifique à l’utilisateur :
Vous pouvez tester contre un environnement de test Datadog dédié avec le véritable fournisseur Datadog, ou remplacer l’évaluation des feature flags par un double de test dans les tests unitaires.
Le SDK PHP OpenFeature 2.1 n’inclut pas de fournisseur en mémoire intégré. Pour les tests unitaires, encapsulez l’évaluation des feature flags derrière une interface d’application et injectez une fausse implémentation :
Vérifiez les métriques d’évaluation des feature flags et les expositions dans Datadog
Métriques d’évaluation des feature flags
Les comptes d’évaluation des feature flags apparaissent dans Datadog lorsque DD_METRICS_OTEL_ENABLED=true est défini pour le traceur PHP. Chaque évaluation émet une métrique compteur feature_flag.evaluations étiquetée avec la clé du feature flag, la variante de résultat et la raison de l’évaluation. Si cette métrique n’apparaît pas, confirmez que DD_METRICS_OTEL_ENABLED=true est défini dans votre environnement et que votre version du traceur PHP prend en charge les métriques d’évaluation des feature flags. Consultez Configurer les métriques d’évaluation des feature flags côté serveur pour la configuration et le dépannage du récepteur OTLP de l’Agent.
Expositions d’expériences
Les expositions apparaissent dans Datadog uniquement pour les feature flags associés à une expérience. Les feature flags standards sans association à une expérience ne génèrent pas d’événements d’exposition. Si les expositions sont manquantes :
Vérifiez que le feature flag est associé à une expérience dans l’interface utilisateur Datadog.
Vérifiez que la DD_API_KEY de l’Agent est correcte et que l’Agent reçoit des événements.
Vérifiez que le contexte d’évaluation utilise des attributs primitifs plats. Les tableaux imbriqués, les objets et les valeurs nulles sont ignorés pour le rapport d’exposition.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: