Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración del muestreo adaptativo
La falta de trazas críticas durante los picos de anomalías puede dificultar el análisis de la causa raíz. Sin embargo, mantener altas tasas de muestreo resulta caro. El muestreo adaptativo de rayos X proporciona una visibilidad completa de las anomalías y controla los costos durante las operaciones normales. Con el muestreo adaptativo, se establece una frecuencia de muestreo máxima y X-Ray se ajusta automáticamente dentro de ese límite. X-Ray calcula el impulso mínimo necesario para capturar los rastros de errores. Si la velocidad de referencia captura suficientes datos, no se produce ningún aumento. Solo paga por el muestreo adicional cuando es necesario.
Ventajas del uso del muestreo adaptativo:
Visibilidad completa de los incidentes: obtenga un seguimiento completo de los incidentes sin intervención manual. X-Ray ajusta automáticamente las velocidades de muestreo para capturar las trazas de error y, a continuación, vuelve a las tasas normales.
Visibilidad de la causa raíz: compruebe siempre el origen de los problemas. X-Ray captura datos de errores críticos incluso cuando no se activa el muestreo de trazas completas.
Optimice los costos: los breves aumentos de muestreo (hasta 1 minuto) y los períodos de enfriamiento automáticos evitan el sobremuestreo. Solo paga por los datos que necesita para diagnosticar problemas.
Temas
Plataformas SDKs y compatibles
SDK compatible: el muestreo adaptativo requiere la última versión del SDK de ADOT.
Lenguaje compatible: Java (versión 2.11.5
La aplicación debe estar equipada con el SDK de ADOT compatible y ejecutarse junto con Amazon CloudWatch Agent o Collector. OpenTelemetry
Por ejemplo, Amazon EC2, Amazon ECS y Amazon EKS son plataformas comunes en las que AWS Application Signals proporciona orientación para habilitar el SDK de ADOT y Amazon CloudWatch Agent.
Elija su enfoque de muestreo adaptativo
El muestreo adaptativo admite dos enfoques: Sampling Boost y Anomaly Span Capture. Se pueden aplicar de forma independiente o se pueden combinar entre sí.
Impulso de muestreo
El refuerzo de muestreo adaptativo se basa en las reglas de muestreo y funciona con el modelo de muestreo existente basado en cabezales de rayos X. El muestreo basado en el cabezal significa que las decisiones de muestreo se toman en el servicio raíz y el indicador de muestreo se transmite en sentido descendente a todos los servicios de la cadena de llamadas.
-
Aumento basado en reglas: el impulso siempre está vinculado a una regla específica de muestreo de rayos X. Cada regla puede definir su propia velocidad máxima de aumento y comportamiento de enfriamiento.
-
Muestreo previo: las decisiones de muestreo se toman en el servicio raíz y el indicador de muestreo se transmite a todos los servicios de la cadena de llamadas.
-
Impulsado por anomalías: X-Ray se basa en el SDK para informar las estadísticas de anomalías. Cuando X-Ray detecta anomalías, como errores o una latencia alta, utiliza estas estadísticas para calcular una tasa de aumento adecuada (hasta el máximo configurado).
Informes de anomalías
Todos los servicios de aplicaciones de la cadena de llamadas pueden emitir estadísticas de anomalías a través del SDK necesario:
-
Servicio raíz: debe ejecutarse en una plataforma y un SDK compatibles para poder aumentar el muestreo. Si el servicio raíz no es compatible, no se producirá ningún impulso.
-
Servicios descendentes: los servicios descendentes solo notifican anomalías; no pueden tomar decisiones de muestreo. Cuando un servicio descendente ejecuta un SDK compatible, las anomalías detectadas pueden provocar un aumento del muestreo. Cuando un servicio descendente no es compatible (por ejemplo, si se ejecuta un SDK anterior), las anomalías de ese servicio no activarán un aumento. Estos servicios aún pueden propagar el contexto en sentido descendente si siguen la propagación de contexto estándar (como el rastreo, el contexto y el bagaje del W3C). De este modo, se garantiza SDKs que otros servicios intermedios puedan detectar anomalías que provoquen un aumento.
Aumente el tiempo y el alcance
-
Retraso de activación: puede esperar que el aumento de muestreo comience tan solo 10 segundos después de que X-Ray detecte una anomalía.
-
Período de refuerzo: después de que X-Ray active un impulso, dura hasta 1 minuto antes de volver a la frecuencia de muestreo base.
-
Aumentar el enfriamiento: después de que se produzca un aumento, X-Ray no activará otro aumento con la misma regla hasta que haya pasado la ventana de enfriamiento.
Por ejemplo, si lo
cooldown
estableces en 10 minutos, una vez que finalice un aumento, no se podrá activar ningún nuevo impulso hasta que pasen los siguientes 10 minutos.Caso especial: si lo
cooldown
estableces en 1 minuto, y dado que un impulso en sí mismo puede durar hasta 1 minuto, los refuerzos pueden activarse de forma continua si la anomalía persiste.
nota
Utilice plataformas SDKs y compatibles para su servicio raíz. Sampling boost solo funciona con plataformas SDKs y compatibles. Si bien Sampling Boost tiene una alta probabilidad de capturar trazas de anomalías, es posible que no capture todas las trazas de anomalías.
Aumente la visibilidad
Cuando se configura una regla de muestreo con un aumento de muestreo adaptativo, X-Ray emite automáticamente métricas vendidas que le permiten monitorear la actividad del impulso.
-
Nombre de la métrica:
SamplingRate
-
Dimensión:
RuleName
(establecida con el nombre real de la regla)
Cada regla que SamplingRateBoost
esté habilitada publicará su frecuencia de muestreo efectiva, incluida la frecuencia de referencia y cualquier aumento temporal. Esto le permite:
-
Realiza un seguimiento de cuándo se activan los refuerzos
-
Supervise la frecuencia de muestreo efectiva de cada regla
-
Correlaciona los aumentos con las anomalías de las aplicaciones (como picos de error o eventos de latencia)
Puedes ver estas métricas en Amazon CloudWatch Metrics, en el espacio de nombres AWS/X-Ray. El valor de la métrica es un número de punto flotante entre 0 y 1, que representa la frecuencia de muestreo efectiva.
Configure el aumento de muestreo mediante las reglas de muestreo de X-Ray
Puede habilitar el muestreo adaptativo directamente en sus reglas de muestreo de rayos X existentes agregando un SamplingRateBoost
campo nuevo. Para obtener más información, consulte Personalización de las reglas de muestreo. Esto proporciona una forma centralizada de habilitar el muestreo adaptativo sin modificar el código de la aplicación ni aplicar el despliegue de la aplicación. Al activar el muestreo adaptativo, X-Ray aumenta automáticamente el muestreo durante anomalías como picos de error o valores atípicos de latencia, a la vez que mantiene las frecuencias de muestreo dentro del máximo configurado. SamplingRateBoost
se puede aplicar a cualquier regla de muestreo personalizada, excepto a la regla de muestreo. Default
El SamplingRateBoost
campo define el límite superior y el comportamiento del muestreo provocado por anomalías.
"SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 }
MaxRate
Define la frecuencia de muestreo máxima que aplicará X-Ray cuando detecte anomalías. El rango de valores es 0.0
de 0 a. 1.0
Por ejemplo, "MaxRate": 0.25
permite que el muestreo aumente hasta un 25% de las solicitudes durante un período de anomalía. X-Ray determina la frecuencia adecuada entre la línea base y la máxima, en función de la actividad de la anomalía.
CooldownWindowMinutes
Define el intervalo de tiempo (en minutos) en el que solo se puede activar un aumento de la frecuencia de muestreo. Una vez que se produce un aumento, no se permiten más amplificaciones hasta la siguiente ventana. El tipo de valor es entero (minutos).
Ejemplo de regla con muestreo adaptativo
{ "RuleName": "MyAdaptiveRule", "Priority": 1, "ReservoirSize": 1, "FixedRate": 0.05, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 } }
En este ejemplo, el muestreo de referencia es del 5% (FixedRate: 0.05
). Durante las anomalías, X-Ray puede aumentar el muestreo hasta un 25% ()MaxRate: 0.25
. Aumenta solo una vez cada 10 minutos.
Configuración de estado anómalo
Cuando no se proporciona una configuración de condición de anomalía, el SDK de ADOT utiliza los códigos de error HTTP 5xx como condición de anomalía predeterminada para activar el aumento del muestreo.
También puede ajustar las condiciones de las anomalías de forma local en el SDK de ADOT compatible mediante variables de entorno. Para obtener más información, consulte Configuración del SDK local.
La anomalía abarca la captura
La captura de intervalos de anomalías garantiza que los intervalos críticos que representan anomalías se registren siempre, incluso si no se ha muestreado todo el rastro. Esta función complementa el impulso del muestreo al centrarse en capturar la anomalía en sí misma, en lugar de aumentar el muestreo para futuras trazas.
Cuando el SDK de ADOT detecta una anomalía, emite ese intervalo inmediatamente, independientemente de la decisión de muestreo. Como el SDK solo emite intervalos relacionados con la anomalía, estos seguimientos son trazos parciales, no transacciones completas. end-to-end
Una vez que el SDK de ADOT detecta un intervalo de anomalías, intenta emitir tantos intervalos como sea posible a partir del mismo rastreo. Todos los intervalos emitidos en virtud de esta función se etiquetan con el atributo,. aws.trace.flag.sampled = 0
Esto le permite distinguir fácilmente las trazas parciales (captura de anomalías) de las trazas completas (muestreo normal) en la búsqueda y el análisis de las transacciones.
Recomendamos incorporar Transaction Search para ver y consultar los rastreos parciales. El siguiente ejemplo muestra una página de servicio en la consola de Application Signals. El ServiceC está configurado con la captura de intervalos de anomalías y forma parte de una cadena de llamadas en la que se aplica el aumento de muestreo. Esta configuración genera trazas completas y parciales. Puede utilizar el aws.trace.flag.sampled
atributo para distinguir entre los tipos de trazas.

La captura de intervalos de anomalías solo se puede habilitar o personalizar a través del. Configuración del SDK local
Configuración del SDK local
Puede configurar las funciones de muestreo adaptativo en el SDK de ADOT proporcionando una configuración YAML a través de una variable de entorno. La configuración local proporciona un control detallado sobre las condiciones y los umbrales de las anomalías.
Esto es necesario para la captura del intervalo de anomalías y es opcional para personalizar las condiciones de refuerzo del muestreo. A continuación se muestra un ejemplo de la configuración:
version: 1.0 anomalyConditions: - errorCodeRegex: "^5\\d\\d$" usage: both - operations: - "/api" errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300 usage: sampling-boost - highLatencyMs: 1000 usage: anomaly-span-capture anomalyCaptureLimit: anomalyTracesPerSecond: 1
A continuación se muestran las definiciones de los campos:
-
version
— Versión del esquema del archivo de configuración -
anomalyConditions
— Define las condiciones en las que se detectan las anomalías y cómo se utilizan-
errorCodeRegex
— Expresión regular que define qué códigos de estado HTTP se consideran anomalías -
operations
— Lista de operaciones o puntos finales a los que se aplica la condición -
highLatencyMs
— Umbral de latencia (en milisegundos) por encima del cual los intervalos se consideran anomalías -
usage
— Define a qué función se aplica la condición:-
both
— Se aplica al aumento del muestreo y a la captura del intervalo de anomalías (predeterminado si no se especifica el uso) -
sampling-boost
— Se utiliza únicamente para activar amplificaciones de muestreo -
anomaly-span-capture
— Se utiliza únicamente para la captura de intervalos de anomalías
-
-
-
anomalyCaptureLimit
— Define los límites del número de trazas que se emiten con intervalos de anomalías.anomalyTracesPerSecond
— Número máximo de trazas con intervalos de anomalías capturados por segundo, para evitar un volumen de intervalo excesivo (el valor predeterminado es 1 si no anomalyCaptureLimit está presente).
nota
-
AnomalyConditions
anula la condición de anomalía predeterminada para el aumento de muestreo (HTTP 5xx). Si desea conservar la condición predeterminada mientras utiliza la configuración local, debe incluirla explícitamente en cualquier elemento de.AnomalyConditions
-
Para cada
anomalyConditions
elemento:-
Si se omite el
operations
campo, la condición se aplica a todas las operaciones (nivel de servicio) -
Cuando el
operations
campo está presente pero está configurado como una lista vacía, la condición no se aplica a ninguna operación, por lo que ese elemento no es operativo Si se
highLatencyMs
omiten amboserrorCodeRegex
y, la condición no tiene ningún criterio de anomalía que evaluar, por lo que ese elemento no es operativo
-
-
Relaciones lógicas:
-
Entre los elementos de
anomalyConditions
, la relación es OR. -
Dentro de un único elemento, varios campos (por ejemplo,
errorCodeRegex
yhighLatencyMs
) se combinan con AND.Por ejemplo:
errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300
Esta condición significa que el código de estado coincide con 429 o 5xx Y una latencia ≥ 300 ms.
-
Aplique la configuración local al SDK de ADOT
Puede aplicar la configuración local al SDK de ADOT configurando la variable de entorno. AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG
El valor debe ser un documento YAML válido (integrado o anidado).
Por ejemplo, Amazon EC2 y Amazon ECS configuran la variable de entorno directamente:
AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG="{version: 1.0, anomalyConditions: [{errorCodeRegex: \"^500$\", usage: \"sampling-boost\"}, {errorCodeRegex: \"^501$\", usage: \"anomaly-trace-capture\"}], anomalyCaptureLimit: {anomalyTracesPerSecond: 10}}"
Para Amazon EKS, defina la variable de entorno dentro de la especificación del pod como YAML anidado:
apiVersion: v1 kind: Pod metadata: name: adot-sample spec: containers: - name: adot-app image: my-app:latest env: - name: AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG value: | version: 1.0 anomalyConditions: - errorCodeRegex: "^500$" usage: sampling-boost - errorCodeRegex: "^501$" usage: anomaly-trace-capture anomalyCaptureLimit: anomalyTracesPerSecond: 10