Commencer avec les drapeaux de fonctionnalités

Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

Aperçu

Datadog Feature Flags offre un moyen puissant et intégré de gérer la livraison des fonctionnalités, avec une observabilité intégrée et une intégration transparente sur la plateforme.

  • Métriques en temps réel : Comprenez qui reçoit chaque variante, ainsi que l’impact de votre drapeau sur la santé et la performance de votre application, le tout en temps réel.

  • Prend en charge tout type de données : Utilisez des booléens, des chaînes, des nombres ou des objets JSON complets, selon les besoins de votre cas d’utilisation.

  • Conçu pour l’expérimentation : Ciblez des audiences spécifiques pour des tests A/B, déployez des fonctionnalités progressivement avec des canary releases, et revenez automatiquement en arrière lorsque des régressions sont détectées.

  • Compatible avec OpenFeature : Basé sur la norme OpenFeature, garantissant la compatibilité avec les implémentations OpenFeature existantes et offrant une approche neutre vis-à-vis des fournisseurs pour la gestion des drapeaux de fonctionnalités.

SDKs de drapeaux de fonctionnalités

Ce guide utilise le SDK JavaScript pour navigateur comme exemple. Vous pouvez intégrer Datadog Feature Flags dans n’importe quelle application en utilisant l’un des SDK suivants :

SDKs côté client

Android
Android TV
Angular
iOS
JavaScript
React
React Native
tvOS
Unity

SDKs côté serveur

.NET
Go
Java
Node.js
PHP
Python
Ruby

Configurez vos environnements

Votre organisation dispose probablement déjà d’environnements préconfigurés pour Development, Staging et Production. Pour des détails sur les requêtes d’environnement, le marquage de production et la gestion des environnements, consultez Environnements.

Créez votre premier drapeau de fonctionnalité

Étape 1 : Importez et initialisez le SDK

Tout d’abord, installez @datadog/openfeature-browser, @openfeature/web-sdk et @openfeature/core en tant que dépendances dans votre projet :

yarn add @datadog/openfeature-browser @openfeature/web-sdk @openfeature/core

Ensuite, ajoutez ce qui suit à votre projet pour initialiser le SDK :

import { DatadogProvider } from '@datadog/openfeature-browser';
import { OpenFeature } from '@openfeature/web-sdk';

// Initialize the provider
const provider = new DatadogProvider({
    clientToken: '<CLIENT_TOKEN>',
    applicationId: '<APPLICATION_ID>',
    enableExposureLogging: true, // Can impact RUM costs if enabled
    site: 'datadoghq.com',
    env: '<YOUR_ENV>', // Same environment normally passed to the RUM SDK
    service: '<SERVICE_NAME>',
    version: '1.0.0'
});

// Set the provider
await OpenFeature.setProviderAndWait(provider);
Paramétrage enableExposureLogging par true peut impacter les coûts de RUM, car il envoie des événements d'exposition à Datadog via RUM. Vous pouvez le désactiver si vous n'avez pas besoin de suivre l'exposition des fonctionnalités ou le statut des métriques de garde-fou.

Plus d’informations sur les options de configuration du SDK OpenFeature peuvent être trouvées dans sa documentation. Pour plus d’informations sur la création de jetons clients et d’ID d’application, consultez API et clés d’application.

Étape 2 : Créez un drapeau de fonctionnalité

Allez à Create Feature Flag dans Datadog et configurez ce qui suit :

Flag keys, variant keys et variant values doivent être considérés comme publics lorsqu'ils sont envoyés aux SDK clients.
Créer un drapeau de fonctionnalité

Étape 3 : Évaluez le drapeau et écrivez le code de fonctionnalité

Dans votre code d’application, utilisez le SDK pour évaluer le drapeau et contrôler l’accès à la nouvelle fonctionnalité.

import { OpenFeature } from '@openfeature/web-sdk';

const client = OpenFeature.getClient();

// If applicable, set relevant attributes on the client's global context
// (e.g. org id, user email)
await OpenFeature.setContext({
    org_id: 2,
    user_id: 'user-123',
    email: '[email protected]',
    targetingKey: 'user-123'
});

// This is what the SDK returns if the flag is disabled in
// the current environment
const fallback = false;

const showFeature = await client.getBooleanValue('show-new-feature', fallback);
if (showFeature) {
    // Feature code here
}

Après avoir terminé cette étape, redéployez l’application pour prendre en compte ces modifications. Des exemples d’utilisation supplémentaires peuvent être trouvés dans la documentation du SDK.

Étape 4 : Définir les règles de ciblage et activer le drapeau de fonctionnalité

Configurez les règles de ciblage pour définir quels sujets reçoivent chaque variante. Après avoir enregistré vos règles, activez le drapeau dans l’environnement de votre choix.

En tant que meilleure pratique, déployez les modifications dans un environnement Staging avant Production.

Pour les déploiements par pourcentage, consultez Traffic Splitting and Randomization.

Étape 5 : Surveillez votre déploiement

Surveillez le déploiement de la fonctionnalité depuis la page de détails du drapeau de fonctionnalité, qui fournit un suivi d’exposition en temps réel et des métriques telles que error rate et page load time. Au fur et à mesure que vous déployez progressivement la fonctionnalité avec le drapeau, consultez le panneau Real-Time Metric Overview dans l’interface utilisateur de Datadog pour voir comment la fonctionnalité impacte les performances de l’application.

Panneau des métriques de drapeau en temps réel

Lectures complémentaires