Este producto no es compatible con el sitio Datadog seleccionado. ().
Descripción general
Esta guía describe el proceso para migrar su lógica de Feature Flags de Statsig a Feature Flags de Datadog. Cubre mapeos conceptuales, instalación del SDK, inicialización y evaluación de Flags.
Lista de verificación de resumen
Reemplace @statsig/js-client con @datadog/openfeature-browser.
Intercambie statsig.initialize con OpenFeature.setProviderAndWait.
Convierta checkGate a client.getBooleanValue.
Convierta getDynamicConfig a client.getObjectValue o client.getStringValue.
Convierta getLayer a client.getObjectValue y desreferencie los campos del objeto JSON devuelto.
Use targetingKey en el contexto para identificar usuarios e impulsar la aleatorización basada en porcentajes.
Recree sus Flags de Statsig en Datadog.
Para aplicaciones del lado del servidor, use @openfeature/server-sdk y pase un contexto de evaluación por solicitud en lugar de un contexto global único.
Recree Flags en Datadog
Antes de cambiar las llamadas del SDK en su aplicación, recree sus puertas, configuraciones dinámicas y capas de Statsig como Flags en Datadog. En la interfaz de usuario de Datadog, vaya a Software Delivery > Feature Flags y cree Flags que coincidan con sus claves, tipos de variantes y reglas de segmentación de Statsig.
Mapeo conceptual
Los conceptos principales entre Statsig y Datadog son similares, pero la terminología difiere ligeramente.
Concepto de Statsig
Concepto de Datadog
Notas
Feature Gate
Feature Flag (booleano)
Alternadores básicos de encendido/apagado.
Dynamic Config
Feature Flag (variantes de JSON/cadena)
Los Flags en Datadog pueden devolver cadenas, JSON o números, cubriendo los casos de uso de Dynamic Config de Statsig.
Layer
Feature Flag (variante JSON)
Utilice un Flag con valor JSON y lea los campos del objeto devuelto, similar a la desreferenciación de valores de una capa de Statsig.
Experiment
Feature Flag (con segmentación)
Un Flag de Datadog se puede configurar con despliegues basados en porcentajes y reglas de segmentación específicas para ejecutar experimentos. Conecte los Flags a Datadog Experiments para medir el impacto en los resultados del usuario.
User/StatsigUser
Evaluation Context
El contexto (atributos) pasado al SDK para evaluar los Flags.
Instalación
Datadog diseña sus SDKs de Feature Flags para su uso con OpenFeature. Esto proporciona una API neutral respecto al proveedor mientras se utiliza Datadog como proveedor subyacente.
Debe reemplazar la llamada statsig.initialize() con la configuración del proveedor de OpenFeature. Pase el contexto de evaluación a setProviderAndWait en el momento del registro para que los Flags se evalúen para el usuario correcto desde el principio.
// Configure the Datadog provider
constprovider=newDatadogProvider({clientToken:'<CLIENT_TOKEN>',applicationId:'<APPLICATION_ID>',site:'datadoghq.com',// or datadoghq.eu, etc.
env:'production',// Environment from which to fetch flag configurations
});// Set the evaluation context and register the provider together
constevaluationContext={targetingKey:'user-123',// Identifies the user and drives percentage-based randomization
email:'employee@company.com',plan:'premium',};awaitOpenFeature.setProviderAndWait(provider,evaluationContext);
El targetingKey se utiliza como sujeto de aleatorización para la segmentación basada en porcentajes. Cuando un Flag segmenta un porcentaje de sujetos (por ejemplo, 50%), el targetingKey determina en qué bucket cae un usuario. Los usuarios con el mismo targetingKey siempre reciben la misma variante para un Flag determinado.
Para obtener más información sobre cómo crear tokens de cliente e IDs de aplicación, consulte API and Application Keys.
Evaluar Flags (verificar puertas)
Reemplace las llamadas a checkGate con getBooleanValue de OpenFeature.
Statsig (antiguo)
constisEnabled=client.checkGate('new_homepage_design');if(isEnabled){// Show new design
}else{// Show old design
}
Datadog (nuevo)
constclient=OpenFeature.getClient();// The second argument is the fallback value (default) if the flag fails to fetch
constisEnabled=client.getBooleanValue('new_homepage_design',false);if(isEnabled){// Show new design
}else{// Show old design
}
Obtener configuración (Dynamic Configs)
Si estaba utilizando getDynamicConfig o getExperiment para recuperar valores que no son booleanos (cadenas, JSON, números), utilice el método ingresado adecuado en OpenFeature.
constclient=OpenFeature.getClient();// Assuming your Datadog flag 'banner_config' returns a JSON object variant
constbannerConfig=client.getObjectValue<{title: string}>('banner_config',{title:'Welcome'});consttitle=bannerConfig.title;
Asignar capas a Flags de objetos JSON
Las capas de Statsig agrupan parámetros relacionados bajo una misma evaluación. En Datadog, utilice un Flag con valor JSON y lea los campos que necesite del objeto devuelto.
Statsig (antiguo)
constlayer=client.getLayer('user_promo_experiments');constpromoTitle=layer.get('title','Welcome to Statsig!');constdiscount=layer.get('discount',0.1);
Actualizar el contexto del usuario después de iniciar sesión
Statsig actualiza el contexto del usuario mediante updateUser. En OpenFeature y Datadog, actualice el contexto después de la inicialización con OpenFeature.setContext(), por ejemplo, después de que un usuario inicie sesión.
// Update the context for all future flag evaluations
awaitOpenFeature.setContext({targetingKey:'user-456',// Identifies the user and drives percentage-based randomization
email:'employee@company.com',plan:'premium',});
Seguimiento y exposición
En Statsig, verificar una puerta registra automáticamente una exposición.
En Datadog, la telemetría de Flags se divide en dos categorías:
El registro de exposición registra que un sujeto recibió una variante de Flag específica. Cada evento de exposición incluye la clave del Flag, la variante servida y el contexto de evaluación. Utilice los datos de exposición para analizar los resultados de los experimentos y la adopción de características.
El registro de evaluación registra con qué frecuencia se devuelve cada variante. Los SDK de cliente envían recuentos de evaluación agregados de forma predeterminada. Los SDK de servidor emiten la métrica feature_flag.evaluations solo después de habilitar el registro de evaluaciones.
SDKs de cliente: El registro de exposiciones está habilitado de forma predeterminada. El SDK envía eventos de exposición a la ingesta de exposiciones. Puede verlos en la lista de Feature Flags. Establezca enableExposureLogging: false en la configuración DatadogProvider si no necesita el seguimiento de exposiciones.
Configuración enableRumFeatureFlagTracking a true puede afectar los costos de RUM, ya que agrega evaluaciones de Flags a los eventos de RUM. Ambos enableExposureLogging y enableRumFeatureFlagTracking están activados de forma predeterminada para los SDKs de cliente.
SDKs de servidor: El registro de exposiciones está activado de forma predeterminada. El registro de evaluaciones está desactivado de forma predeterminada. Para enviar métricas de evaluación desde los SDK de servidor, habilite las métricas de OpenTelemetry (por ejemplo, DD_METRICS_OTEL_ENABLED=true) y siga la guía específica del lenguaje en Server-Side Feature Flags.
Contexto del lado del servidor y dinámico
Las secciones anteriores cubren la migración del lado del cliente y del navegador, donde el contexto de evaluación suele ser estático durante la duración de la sesión de un usuario. Las aplicaciones del lado del servidor utilizan un SDK diferente y se autentican con una clave de Datadog API en lugar de un token de cliente. También suelen crear un nuevo contexto de evaluación para cada solicitud entrante.
Configure las variables de entorno necesarias antes de inicializar el SDK de servidor:
El SDK del navegador utiliza cualquier contexto de evaluación que esté configurado para cada evaluación de Flag. Puede actualizar ese contexto con OpenFeature.setContext() cuando el usuario inicie sesión o sus atributos cambien. El SDK del servidor, en cambio, pasa un nuevo contexto de evaluación en cada llamada de evaluación de Flag, ya que un proceso maneja muchos usuarios diferentes.