Muestreo de seguimientos

En este documento, se presenta el concepto de muestreo, que se refiere a si los datos de un intervalo se envían a Cloud Trace. Cuando los datos de un intervalo se envía a Cloud Trace y, luego, ese intervalo se muestrea. Cuando los datos para cada el intervalo de tiempo de un seguimiento, se completa el seguimiento. Sin embargo, a menudo, los registros tienen intervalos faltantes porque cada componente instrumentado en un sistema de seguimiento distribuido decide de forma independiente si registrar o no el intervalo que está procesando.

Aunque cada componente toma su propia decisión sobre si se muestrea el intervalo que está procesando, esa decisión puede estar influenciada por la decisión de muestreo del elemento superior. Por ejemplo, supongamos que cada componente tiene una regla que dice “si se muestrean el intervalo superior, tomar muestras del intervalo actual; De lo contrario, muestre el 50% de los intervalos". En esta situación, se cumple lo siguiente:

  • El intervalo raíz determina si se muestrearon todos los intervalos del seguimiento.
  • Cuando se toma una muestra del intervalo raíz, se toman muestras de todos los intervalos del seguimiento. Por lo tanto, se complete el seguimiento.

Los componentes pueden pasar su decisión de muestreo al elemento secundario a través del contexto. Por ejemplo, en el World Wide Web Consortium (W3C) Encabezado traceparent, La marca sampled almacena la decisión de muestreo del elemento superior.

No confundas el muestreo con la propagación de contexto. Muestreo se refiere a si un componente registra datos sobre un intervalo. La propagación de contexto hace referencia a si la información sobre el intervalo, como el ID de intervalo, se pasa a los componentes secundarios.

Estrategias de muestreo

Las decisiones de muestreo pueden basarse en la parte superior o en la parte inferior. En el muestreo basado en encabezados, la decisión de muestreo se toma cuando la solicitud se recibidos por el componente que procesa el intervalo. En el muestreo basado en la cola, la decisión de muestreo se retrasa hasta que todo el seguimiento esté disponible.

Es posible que te encuentres con la frase "100% de muestreo" en la documentación sobre de seguimiento distribuido. Esta frase podría aplicarse a un seguimiento o a un este componente. Cuando se aplica a un seguimiento, significa que se tomaron muestras de todos los intervalos o, de manera equivalente, que el seguimiento está completo. Cuando se aplica a un componente, significa que el componente hace un muestreo de cada intervalo que procesa.

Muestreo basado en la cabeza

Por lo general, los muestreos basados en la cabeza están configurados para tomar muestras de intervalos o para usar una estrategia de muestreo probabilístico:

  • Con las configuraciones siempre de muestra, todos los componentes que abarca ese servicio y que puede escribir datos de seguimiento, tomar muestras de los intervalos que el proceso de administración de recursos. Idealmente, todos los seguimientos están completos y, por lo tanto, tienes la información necesaria para solucionar los problemas. Este tipo de configuración puede hacer que excedas las cuotas o tus límites de costo de almacenamiento.

  • Con el muestreo probabilístico, no se muestrean todos los intervalos. El comportamiento real de este enfoque depende en la implementación del componente. En algunas implementaciones, todos los intervalos la misma probabilidad de que se la muestre. En otros, la decisión de muestreo de el elemento superior influye en el muestreo de intervalos.

Es posible que los registros no contengan todos los tramos. Esto podría esperarse debido al uso de probabilístico, que puede ser debido a una cuota, o a componentes procesar una solicitud, pero no muestrear el intervalo.

Muestreo basado en la cola

Cloud Trace no admite el muestreo basado en colas. muestreo se deben tomar decisiones fundamentadas en los componentes que envían datos a Cloud Trace.

Si deseas usar un muestreo basado en la cola, puedes usar un intermediario. servidor que recibe información de seguimiento que retransmite datos a Cloud Trace después de tomar una decisión de muestreo. Por ejemplo, puedes usar el OpenTelemetry Collector con el procesador de muestreo de cola para tomar una decisión demorada en el muestreo.

Si planeas usar el muestreo de cola, considera lo siguiente:

  • Debes almacenar todos los intervalos en un seguimiento antes de tomar una decisión sobre el muestreo. Por eso, es posible que necesites una gran cantidad de almacenamiento temporal o incurrir en otros gastos generales.
  • En general, todos los componentes que pueden generar intervalos para el seguimiento deben coordenada. Por lo general, los desarrolladores que usan OpenTelemetry enrutan todos los intervalos del mismo ID de seguimiento al mismo recopilador.

Servicios de muestreo y de Google Cloud

Cada servicio de Google Cloud toma sus propias decisiones de muestreo, y no todas las muestras de servicios de Google Cloud. Es decir, es posible que un servicio nunca envíe a Cloud Trace.

Cuando el muestreo es compatible con un servicio de Google Cloud, ese servicio, por lo general, implementa lo siguiente:

  • Una tasa de muestreo predeterminada.
  • Un mecanismo para usar la decisión de muestreo de la madre o el padre como una pista para saber si muestrear el intervalo.
  • Tasa de muestreo máxima

Para solicitar que un servicio de Google Cloud agregue compatibilidad con el muestreo, sigue estos pasos: usar la Herramienta de seguimiento de errores de Google

¿Qué sigue?