Este producto no es compatible con el sitio Datadog seleccionado. ().
Descripción general
Esta página describe cómo instrumentar su aplicación PHP con el Datadog Feature Flags SDK. El SDK de PHP utiliza el Remote Configuration del Datadog SDK para recibir actualizaciones de Feature Flags en tiempo real.
El SDK de PHP proporciona dos API de aplicación:
Datadog PHP API: utilícela DDTrace\FeatureFlags\Client con aplicaciones PHP 7 o PHP 8.
OpenFeature adapter: utilícelo DDTrace\OpenFeature\DataDogProvider con aplicaciones PHP 8 que utilicen la API estándar OpenFeature.
La evaluación de Feature Flags es local y rápida. El SDK utiliza datos de configuración almacenados en caché localmente, por lo que no se producen solicitudes de red durante la evaluación.
Requisitos previos
Antes de configurar el PHP Feature Flags SDK, asegúrese de tener:
Datadog PHP SDKdatadog/dd-trace versión 1.21.0 o posterior
Entorno de ejecución de PHP compatible: PHP 7 o posterior con Datadog PHP API, o PHP 8 o posterior con OpenFeature adapter
OpenFeature PHP SDKopen-feature/sdk versión 2.1 o posterior, si utiliza OpenFeature adapter
Establezca las siguientes variables de entorno:
# 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
El EXPERIMENTAL_ prefijo se conserva por compatibilidad con versiones anteriores; el proveedor en sí es estable.
Para configurar feature_flag.evaluations, incluida la versión requerida del rastreador y la configuración de OTLP del Agent, consulte [Configurar métricas de evaluación de marcadores del lado del servidor]]6. Para obtener más información sobre los gráficos disponibles, consulte [Feature Flag Graphs][7].
Instalación
Feature Flagging es proporcionado por Application Performance Monitoring (APM). Instale y configure el rastreador Datadog PHP siguiendo Tracing PHP Applications.
Si utiliza OpenFeature adapter en una aplicación PHP 8, instale el OpenFeature PHP SDK:
composer require open-feature/sdk:^2.1
Inicializar el SDK
Elija la API que coincida con su entorno de ejecución de PHP y la arquitectura de su aplicación.
PHP 7 y PHP 8: Datadog API
Utilice DDTrace\FeatureFlags\Client directamente en aplicaciones PHP 7 o PHP 8:
El proveedor OpenFeature devuelve valores predeterminados hasta que Remote Configuration entrega la configuración inicial de Feature Flags. Inicialice el proveedor al inicio de la aplicación para que la configuración de Flag tenga tiempo de cargarse antes de que la lógica de negocio evalúe las Flags.
Establezca el contexto de evaluación
Defina un contexto de evaluación que identifique al usuario o entidad para la segmentación de marcadores. La clave de segmentación se utiliza para una distribución de tráfico consistente, como lanzamientos porcentuales. Los atributos adicionales permiten reglas de segmentación, como “habilitar para usuarios en EE. UU.” o “habilitar para usuarios de nivel premium”.
Datadog API
Para la Datadog PHP API, pase el contexto como un arreglo con las claves targetingKey y attributes:
Los atributos del contexto de evaluación deben ser valores primitivos planos: cadenas, números y booleanos. Los arreglos anidados, los objetos y los valores nulos se ignoran para la segmentación y los informes de exposición.
Evaluar Feature Flags
Después de configurar el cliente, puede evaluar Feature Flags en toda su aplicación. Cada Feature Flag se identifica mediante una clave de cadena única y se evalúa con un método tipeado que devuelve un valor del tipo esperado. Si el Feature Flag no existe o no puede evaluarse, el SDK devuelve el valor predeterminado proporcionado.
Feature Flags booleanos
Utilice getBooleanValue para Feature Flags que representen condiciones de encendido/apagado o verdadero/falso:
Para Feature Flags numéricas, utilice getIntegerValue o getFloatValue. Estos métodos son apropiados cuando una Feature Flag depende de un parámetro numérico como un límite, porcentaje o multiplicador:
Cuando necesite algo más que el valor de la Feature Flag, use los métodos get<Type>Details. Estos devuelven tanto el valor evaluado como los metadatos que explican la evaluación:
Puede evaluar Feature Flags sin proporcionar un contexto de evaluación. Esto es útil para Feature Flags globales que no requieren una segmentación específica del usuario:
Puede probar contra un entorno de prueba dedicado de Datadog con el proveedor real de Datadog, o reemplazar la evaluación de Feature Flags con un doble de prueba en las pruebas unitarias.
El OpenFeature PHP SDK 2.1 no incluye un proveedor in-memory incorporado. Para pruebas unitarias, envuelva la evaluación de Feature Flags detrás de una interfaz de aplicación e inyecte una implementación falsa:
Verifique las métricas y exposiciones de Feature Flags en Datadog
Métricas de evaluación de Feature Flags
Los conteos de evaluación de Feature Flags aparecen en Datadog cuando DD_METRICS_OTEL_ENABLED=true está configurado para el rastreador Datadog PHP. Cada evaluación emite una métrica de contador feature_flag.evaluations etiquetada con la clave de la Feature Flag, la variante del resultado y la razón de la evaluación. Si esta métrica no aparece, confirme que DD_METRICS_OTEL_ENABLED=true esté configurado en su entorno y que su versión del rastreador Datadog PHP admita métricas de evaluación de Feature Flags. Consulte Configurar métricas de evaluación de Feature Flags del lado del servidor para la configuración y solución de problemas del receptor OTLP del Datadog Agent.
Exposiciones de experimentos
Las exposiciones aparecen en Datadog solo para las Feature Flags asociadas con un experimento. Las Feature Flags estándar sin asociación a un experimento no generan eventos de exposición. Si faltan las exposiciones:
Verifique que la Feature Flag esté asociada con un experimento en la interfaz de usuario de Datadog.
Verifique que DD_API_KEY del Datadog Agent sea correcta y que el Datadog Agent esté recibiendo eventos.
Verifique que el contexto de evaluación utilice atributos primitivos planos. Los arreglos anidados, los objetos y los valores nulos se ignoran para los informes de exposición.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: