Introducción a Feature Flags

Este producto no es compatible con el sitio Datadog seleccionado. ().

Descripción general

Las Feature Flags de Datadog ofrecen una forma poderosa e integrada de gestionar la entrega de funciones, con observabilidad incorporada e integración fluida en toda la plataforma.

  • Métricas en tiempo real: Comprenda quién está recibiendo cada variante, así como cómo su Feature Flag impacta la salud y el rendimiento de su aplicación, todo en tiempo real.

  • Soporta cualquier tipo de dato: Utilice booleanos, cadenas, números u objetos JSON completos, lo que su caso de uso requiera.

  • Construido para la experimentación: Dirija audiencias específicas para pruebas A/B, despliegue funciones gradualmente con lanzamientos canarios y retroceda automáticamente cuando se detecten regresiones.

  • Compatible con OpenFeature: Construido sobre el estándar OpenFeature, asegurando la compatibilidad con implementaciones existentes de OpenFeature y proporcionando un enfoque neutral respecto a proveedores para la gestión de Feature Flags.

Feature Flags SDKs

Esta guía utiliza el SDK de navegador de JavaScript como ejemplo. Puede integrar Feature Flags de Datadog en cualquier aplicación utilizando uno de los siguientes SDKs:

SDKs del lado del cliente

Android
Android TV
Angular
iOS
JavaScript
React
React Native
tvOS
Unity

SDKs del lado del servidor

.NET
Go
Java
Node.js
PHP
Python
Ruby

Configure sus entornos

Su organización probablemente ya tiene entornos preconfigurados para Desarrollo, Staging y Producción. Para detalles sobre consultas de entornos, marcado de producción y gestión de entornos, consulte Entornos.

Cree su primer Feature Flag

Paso 1: Importe e inicialice el SDK

Primero, instale @datadog/openfeature-browser, @openfeature/web-sdk y @openfeature/core como dependencias en su proyecto:

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

Luego, agregue lo siguiente a su proyecto para inicializar el 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);
Configuración enableExposureLogging a true puede impactar los costos de RUM, ya que envía eventos de exposición a Datadog a través de RUM. Puede desactivarlo si no necesita rastrear la exposición de funciones o el estado de las métricas de guardrail.

Más información sobre las opciones de configuración del SDK de OpenFeature se puede encontrar en su documentación. Para más información sobre la creación de tokens de cliente e IDs de aplicación, consulte API y Claves de Aplicación.

Paso 2: Cree un Feature Flag

Vaya a Create Feature Flag en Datadog y configure lo siguiente:

Flag keys, variant keys y variant values deben considerarse públicos cuando se envían a los SDK de clientes.
Cree Feature Flag

Paso 3: Evalúe el Feature Flag y escriba el código para implementar la nueva funcionalidad

En el código de su aplicación, utilice el SDK para evaluar el Feature Flag y habilitar la nueva funcionalidad.

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: 'user@example.com',
    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
}

Después de completar este paso, vuelva a implementar la aplicación para aplicar estos cambios. Ejemplos adicionales de uso se pueden encontrar en la documentación del SDK.

Paso 4: Defina las reglas de segmentación y habilite el Feature Flag

Configure las reglas de segmentación para definir qué sujetos reciben cada variante. Después de guardar sus reglas, habilite el Feature Flag en el entorno seleccionado.

Como buena práctica general, implemente los cambios en un entorno de Staging antes de la Producción.

Consulte Traffic Splitting and Randomization.

Paso 5: Monitoree su implementación

Monitoree el despliegue de la función desde la página de detalles del Feature Flag, que proporciona seguimiento de exposición en tiempo real y métricas como error rate y page load time. A medida que implemente de forma incremental la función con el Feature Flag, visualice el panel Real-Time Metric Overview en la interfaz de usuario de Datadog para ver cómo la función impacta el rendimiento de la aplicación.

Panel de métricas de Feature Flag en tiempo real

Lectura adicional