Este producto no es compatible con el sitio Datadog seleccionado. ().
Descripción general
El SDK de Datadog Feature Flag realiza dos tipos de solicitudes de red salientes desde su aplicación:
Descarga de configuración de marcador: El SDK obtiene las asignaciones de marcadores precalculadas desde la CDN de Datadog al inicio y cuando cambia el contexto de evaluación. Esta solicitud determina qué variantes de marcador se devuelven a su aplicación.
Cargas de eventos: El SDK envía datos de eventos de exposición y evaluación a los puntos de conexión de ingesta de Datadog.
Puede enrutar uno o ambos tipos de estas solicitudes a través de un proxy en su propio dominio. Las razones comunes para usar un proxy incluyen:
Políticas de red que restringen el acceso directo a dominios de terceros desde dispositivos cliente
Requisitos de cumplimiento o residencia de datos
Evitar bloqueadores de anuncios para aplicaciones de navegador
Los ejemplos de código en esta página utilizan el sitio US1 (datadoghq.com) como ejemplo. Reemplace los dominios de Datadog con los valores correspondientes para su sitio de Datadog.
Configure el proxy
Pase las URL de punto de conexión personalizadas a FlagsConfiguration.Builder antes de llamar a Flags.enable().
Proxy de configuración de marcador
Para enrutar la descarga de la configuración de marcador a través de su proxy, llame a useCustomFlagEndpoint con la URL completa que expone su proxy. El SDK envía una solicitud POST a esta URL con el contexto de evaluación en el cuerpo.
Su proxy debe reenviar esta solicitud a la CDN de Datadog: https://preview.ff-cdn.datadoghq.com/precompute-assignments (reemplace el subdominio según sea necesario para su sitio de Datadog). Transmita el cuerpo de la solicitud y todos los encabezados sin cambios.
Proxy de carga de eventos
Para enrutar las cargas de eventos de exposición y evaluación a través de su proxy, llame a los métodos de constructor correspondientes con la URL completa de su punto de conexión de proxy.
Su proxy debe reenviar cada solicitud al punto de conexión de ingesta de Datadog correspondiente para su sitio de Datadog (la siguiente tabla utiliza el sitio US1 como ejemplo):
Ruta del proxy
Reenviar a
/api/v2/exposures
https://api.datadoghq.com/api/v2/exposures
/api/v2/flagevaluation
https://api.datadoghq.com/api/v2/flagevaluation
Establezca las URL de punto de conexión personalizadas en Flags.Configuration antes de llamar a Flags.enable(with:).
Proxy de configuración de marcador
Para enrutar la descarga de la configuración de marcador a través de su proxy, establezca customFlagsEndpoint en la URL completa que expone su proxy. El SDK envía una solicitud POST a esta URL con el contexto de evaluación en el cuerpo.
Su proxy debe reenviar esta solicitud a la CDN de Datadog: https://preview.ff-cdn.datadoghq.com/precompute-assignments (reemplace el subdominio según sea necesario para su sitio de Datadog). Transmita el cuerpo de la solicitud y todos los encabezados sin cambios.
Para adjuntar encabezados HTTP adicionales a las solicitudes de configuración de marcador (por ejemplo, para la autenticación en su proxy), establezca customFlagsHeaders.
Su proxy debe reenviar cada solicitud al punto de conexión de ingesta de Datadog correspondiente para su sitio de Datadog (la siguiente tabla utiliza el sitio US1 como ejemplo):
Ruta del proxy
Reenviar a
/api/v2/exposures
https://api.datadoghq.com/api/v2/exposures
/api/v2/flagevaluation
https://api.datadoghq.com/api/v2/flagevaluation
Pase un objeto FlagsConfiguration a DdFlags.enable().
Proxy de configuración de marcador
Para enrutar la descarga de la configuración de marcador a través de su proxy, establezca customFlagsEndpoint en la URL base de su proxy. El SDK añade /precompute-assignments a este valor automáticamente y envía una solicitud POST con el contexto de evaluación en el cuerpo.
App.tsx
import{DdFlags}from'@datadog/mobile-react-native';awaitDdFlags.enable({customFlagsEndpoint:'https://proxy.example.com',// SDK sends POST to: https://proxy.example.com/precompute-assignments
});
Su proxy debe reenviar esta solicitud a la CDN de Datadog: https://preview.ff-cdn.datadoghq.com/precompute-assignments (reemplace el subdominio según sea necesario para su sitio de Datadog). Transmita el cuerpo de la solicitud y todos los encabezados sin cambios.
Proxy de carga de eventos
Para enrutar las cargas de eventos de exposición a través de su proxy, establezca customExposureEndpoint en la URL base de su proxy. El SDK añade /api/v2/exposures a este valor automáticamente.
App.tsx
awaitDdFlags.enable({customFlagsEndpoint:'https://proxy.example.com',customExposureEndpoint:'https://proxy.example.com',// SDK sends POST to: https://proxy.example.com/api/v2/exposures
});
Su proxy debe reenviar las solicitudes de exposición al punto de conexión de ingesta de Datadog correspondiente para su sitio de Datadog; por ejemplo, para el sitio US1 use https://api.datadoghq.com/api/v2/exposures.
El SDK de React Native no expone un customEvaluationEndpoint opción. Los eventos de evaluación se envían a través del SDK nativo subyacente de Android o iOS y no se pueden enrutar a través de un punto de conexión de proxy personalizado.
Pase las opciones de configuración a DatadogBrowserFlagging.init().
Proxy de configuración de marcador
Para enrutar la descarga de la configuración de marcador a través de su proxy, establezca flaggingProxy en la URL de su punto de conexión de proxy. El SDK envía una solicitud POST con el contexto de evaluación en el cuerpo directamente a esta URL, reemplazando el punto de conexión predeterminado de la CDN de Datadog.
Su proxy debe reenviar esta solicitud a la CDN de Datadog: https://preview.ff-cdn.datadoghq.com/precompute-assignments (reemplace el subdominio según sea necesario para su sitio de Datadog). Pase el cuerpo de la solicitud y los encabezados sin cambios. El SDK incluye automáticamente los encabezados dd-client-token y dd-application-id.
Para agregar encabezados personalizados a la solicitud de configuración de marcador (por ejemplo, para la autenticación en su proxy), use customHeaders:
Los datos de eventos de marcador del navegador (exposiciones y evaluaciones) se envían a través de la canalización de ingesta estándar del SDK de navegador. Para enrutar este tráfico a través de un proxy, establezca la opción proxy en una URL de su dominio.
El SDK añade un parámetro de consulta ddforward a cada solicitud enviada a su proxy. Este parámetro contiene la ruta y la cadena de consulta codificadas en URL a las que su proxy debe reenviar. Por ejemplo:
POST https://proxy.example.com/intake?ddforward=%2Fapi%2Fv2%2Fexposures%3Fddsource%3Dbrowser...
Su proxy decodifica el valor ddforward y construye la URL de ingesta de Datadog:
El origen de la ingesta varía según el sitio de Datadog. Por ejemplo, para datadoghq.eu es https://browser-intake-datadoghq.eu. Reenvíe el cuerpo de la solicitud POST sin cambios y agregue un encabezado X-Forwarded-For con la IP del cliente para una geolocalización precisa. Elimine cualquier encabezado confidencial como cookie antes de reenviar.
La opción proxy también acepta una función que recibe el path y parameters decodificados y devuelve la URL completa del proxy. Consulte Proxy Browser RUM Data para ver la firma completa de la función.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: