Este producto no es compatible con el sitio Datadog seleccionado. ().
Descripción general
Las métricas de evaluación de flags le permiten medir con qué frecuencia su aplicación del lado del servidor devuelve cada variante de una feature flag. Utilice estas métricas para realizar un seguimiento de la adopción de flags a lo largo del tiempo, verificar que las reglas de segmentación funcionen según lo esperado y graficar los datos de evaluación de flags en dashboards.
El feature_flag.evaluations la métrica es experimental y puede cambiar o eliminarse en una versión futura.
El feature_flag.evaluations La métrica es independiente de los eventos de exposición de experimentos y de los eventos de evaluación de feature flags del Event Platform Proxy (EVP). La salida de eventos de exposición y EVP utiliza la URL del tracer estándar en el puerto 8126. Esta métrica utiliza un punto de conexión OTLP en el puerto 4317 o 4318.
Requisitos previos
Antes de configurar las métricas de evaluación de flags, confirme lo siguiente:
Para configuraciones respaldadas por Agent que utilizan la ruta de activación heredada, DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true está configurado en su aplicación.
Su tracer del lado del servidor cumple con la versión mínima para el soporte de métricas de evaluación de feature flags:
Lenguaje
Versión mínima del tracer
.NET
3.44.0
Go
2.8.0
Java
1.62.0
Node.js
5.99.0
PHP
1.21.1
Python
4.7.0
Ruby
2.32.0
La entrega de configuración Agentless y esta métrica utilizan rutas independientes. Un SDK sin agente puede emitir la métrica cuando configura la ruta OTLP requerida a través de una configuración de telemetría sin servidor o respaldada por un Agent compatible.
Paso 1: Configure un receptor OTLP
Las métricas de evaluación de feature flags se emiten a través de OpenTelemetry (OTLP). Para implementaciones respaldadas por el Datadog Agent, habilite el receptor OTLP del Datadog Agent, que está desactivado de forma predeterminada. Para obtener instrucciones de configuración, consulte Ingesta de OTLP por el Datadog Agent. Para implementaciones sin servidor sin Agent, utilice la ruta OTLP o de métricas personalizadas admitida por su configuración de Serverless Monitoring.
Solo necesita habilitar el protocolo que utiliza su aplicación (gRPC en el puerto 4317, o HTTP en el puerto 4318).
Si está ejecutando Datadog Agent v7.61.0 o posterior en Docker, configure HOST_PROC=/proc en el contenedor de Datadog Agent para solucionar un problema conocido con la canalización OTLP.
# Enable flag evaluation metricsDD_METRICS_OTEL_ENABLED=true
Java: Añada las dependencias del SDK de OpenTelemetry
El proveedor de Java registra feature_flag.evaluations a través del SDK de OpenTelemetry y lo exporta a través de OTLP, por lo que las dependencias opentelemetry-sdk-metrics y opentelemetry-exporter-otlp deben estar en el classpath de su aplicación. Añádalas junto con sus dependencias de feature flags de Java. Importe la BOM de OpenTelemetry para que la API y el SDK de OpenTelemetry permanezcan en la misma versión:
En el rastreador de Java, el proveedor inicia automáticamente su exportador de métricas OTLP cuando el SDK de OpenTelemetry está en la ruta de clases. Si faltan las dependencias, no se emiten métricas y el rastreador registra OpenTelemetry SDK is not on the classpath.
En aplicaciones de Spring Boot, la autoconfiguración de OpenTelemetry de Spring Boot también crea un OpenTelemetrySdk bean. Si la versión del SDK de OpenTelemetry que resuelve no coincide con la versión de la API de OpenTelemetry en la ruta de clases, el inicio falla con un BeanCreationException para el openTelemetry bean y NoClassDefFoundError: io/opentelemetry/sdk/internal/ScopeConfigurator. Al importar el opentelemetry-bom como se muestra arriba, mantiene la API y el SDK en la misma versión y resuelve el error.
Ruby: Agregue las gemas de métricas de OpenTelemetry
Para aplicaciones Ruby, agregue las gemas del SDK de métricas de OpenTelemetry y del exportador de métricas OTLP al paquete de su aplicación:
Instale las gemas con bundle install. Estas gemas proporcionan el proveedor de medidores de OpenTelemetry y el exportador de métricas OTLP. El rastreador de Ruby los utiliza cuando DD_METRICS_OTEL_ENABLED=true está configurado. Si faltan las gemas, el rastreador de Ruby no emite métricas feature_flag.evaluations y registra Failed to load OpenTelemetry metrics gems.
Configuración del punto de conexión
DD_TRACE_AGENT_URL y el listener estándar serverless-init en el puerto 8126 no configuran el punto de conexión de métricas OTLP. Configure el punto de conexión OTLP por separado, como se describe en la siguiente sección. Para implementaciones sin servidor sin Agent, siga la configuración de Serverless Monitoring para su plataforma antes de configurar esta métrica.
De forma predeterminada, la mayoría de los trazadores envían métricas OTLP al Datadog Agent en DD_AGENT_HOST por el puerto 4318 (HTTP). Si su aplicación ya configura DD_AGENT_HOST para llegar al Datadog Agent, no se requiere configuración de punto de conexión.
Establezca un punto de conexión OTLP explícitamente en cualquiera de estos casos:
El Datadog Agent no es accesible en DD_AGENT_HOST en el puerto OTLP predeterminado (por ejemplo, un Datadog Agent remoto o un puerto no predeterminado).
Usted utiliza el trazador de Java. Su exportador de métricas de evaluación de feature flags solo admite OTLP/HTTP (gRPC no es compatible) en el puerto 4318. El trazador de Java no deriva el punto de conexión de DD_AGENT_HOST y utiliza http://localhost:4318 de forma predeterminada. Establezca OTEL_EXPORTER_OTLP_ENDPOINT en el punto de conexión HTTP del Datadog Agent cuando el Datadog Agent no esté en localhost.
Usted utiliza el trazador de Python. El trazador de Python utiliza gRPC de forma predeterminada en el puerto 4317, no HTTP. Habilite el receptor OTLP gRPC en el Datadog Agent o anule el protocolo para usar HTTP en su lugar:
Para configurar el punto de conexión, utilice la variable estándar de OpenTelemetry:
# Point OTLP data at the Datadog Agent (HTTP, port 4318)OTEL_EXPORTER_OTLP_ENDPOINT=http://<AGENT_HOST>:4318
# Or use gRPC (port 4317). For most tracers, the default protocol is http/protobuf,# so set the protocol explicitly when switching to gRPC:# OTEL_EXPORTER_OTLP_ENDPOINT=http://<AGENT_HOST>:4317# OTEL_EXPORTER_OTLP_PROTOCOL=grpc
Reemplace <AGENT_HOST> con el nombre de host o la dirección IP de su Datadog Agent.
Ejemplo de Docker Compose:
docker-compose.yml
services:datadog-agent:environment:- DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT=0.0.0.0:4317- DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT=0.0.0.0:4318- HOST_PROC=/proc # If running Agent v7.61.0+ in Dockerapp-go:environment:- DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true- DD_METRICS_OTEL_ENABLED=true- OTEL_EXPORTER_OTLP_ENDPOINT=http://datadog-agent:4318depends_on:datadog-agent:condition:service_healthy
Paso 3: Verifique que las métricas estén fluyendo
Después de implementar, confirme que las métricas estén llegando a Datadog: