Contexto de evaluación

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

Descripción general

Un contexto de evaluación es el conjunto de atributos que un SDK pasa a Datadog cuando evalúa una Feature Flag. Datadog Feature Flags utiliza el contexto de evaluación de OpenFeature: un mapa plano de atributos que describe al sujeto que se está evaluando, como un usuario, sesión o dispositivo. Las reglas de segmentación y los despliegues porcentuales leen estos atributos para decidir qué variante recibe un sujeto.

Sin un contexto de evaluación, el SDK aún puede evaluar Feature Flags booleanas de encendido/apagado. No puede coincidir con reglas de segmentación que filtran por atributos del sujeto, ni producir una asignación de despliegue consistente para ese sujeto.

La clave de segmentación

La targetingKey es el identificador principal en un contexto de evaluación. Por lo general, es un ID de usuario, ID de sesión o ID de dispositivo. Datadog utiliza la targetingKey para aleatorización determinista, de modo que el mismo sujeto reciba consistentemente la misma variante para una Feature Flag.

Utilice un identificador estable y consistente para el mismo sujeto a través de las sesiones. Para sujetos que no han iniciado sesión o son anónimos, utilice un identificador persistente, como un UUID almacenado en el almacenamiento local o SharedPreferences, en lugar de omitir la targetingKey o regenerarla en cada sesión.

Atributos de contexto

Más allá de la targetingKey, un contexto de evaluación puede incluir cualquier cantidad de atributos adicionales, como user_role, country o tier. Haga referencia a estos atributos en los filtros de las reglas de segmentación para controlar quién ve cada variante.

Datadog Feature Flags requiere que los atributos del contexto de evaluación sean valores primitivos planos: cadenas, números y booleanos. Los objetos y arreglos anidados no son compatibles y pueden causar que los datos de exposición se pierdan.

Ejemplo de contexto de evaluación

const evaluationContext = {
  targetingKey: 'user-123',
  user_id: 'user-123',
  user_role: 'admin',
  country: 'US',
  tier: 'premium',
};
from openfeature.evaluation_context import EvaluationContext

eval_ctx = EvaluationContext(
    targeting_key="user-123",
    attributes={
        "user_id": "user-123",
        "user_role": "admin",
        "country": "US",
        "tier": "premium",
    },
)
evalCtx := openfeature.NewEvaluationContext(
    "user-123",
    map[string]interface{}{
        "user_id":   "user-123",
        "user_role": "admin",
        "country":   "US",
        "tier":      "premium",
    },
)

Contexto del lado del cliente frente al lado del servidor

Los SDK de cliente y servidor establecen el contexto de evaluación de manera diferente:

  • Los SDKs del lado del cliente mantienen un único contexto de evaluación global para la instancia del SDK. Establézcalo una vez durante la inicialización, luego llame a OpenFeature.setContext() para actualizarlo cuando los atributos del sujeto cambien, como después de que un usuario inicie sesión. Todas las evaluaciones de Feature Flags posteriores utilizan el contexto actualizado.
  • Los SDKs del lado del servidor no mantienen un contexto global. Cree un contexto de evaluación para cada solicitud entrante, basado en el usuario o la sesión actual, y páselo explícitamente a cada llamada de evaluación de Feature Flag para esa solicitud. Reutilice el mismo objeto de contexto en las evaluaciones dentro de una solicitud y solo vuelva a crearlo si los atributos del sujeto cambian.

Lecturas adicionales