es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo hacer que los registros HTTP del balanceador de carga de GCP se integren con Cloud Trace (en el explorador de registros de GCP)?

Cloud Trace y Cloud Logging se integran bastante bien en la mayoría de los casos, como se describe en https://cloud.google.com/trace/docs/trace-log-integration

Desafortunadamente, esto parece no incluir los registros de solicitud HTTP generados por un equilibrador de carga cuando se habilita el registro de solicitud.

Los registros del equilibrador de carga muestran el icono de trazas y están correctamente asociados con una traza general en el sistema Cloud Trace, pero el menú contextual “mostrar detalles de la traza” está desactivado para esos elementos de registro.

Un problema similar surgió con el registro / seguimiento a nivel de aplicación, que se resolvió al establecer el atributo traceSampled en LogEntry, pero esto no puede funcionar para los registros de equilibrador de carga, ya que no tengo control de su generación.

En este caso, estoy rastreando el 100% de las solicitudes ya que el servicio es M2M y de volumen bastante bajo, pero en el caso general tiene sentido que el equilibrador de carga no pueda saber si algo está generando trazas sin que se lo indiquen.

No puedo encontrar ninguna referencia buena en la documentación, pero en teoría se podría observar un encabezado de respuesta que indique que se muestreó y que cause que el equilibrador de carga emita el registro correspondiente.

¿Alguna idea si existe tal función, en esta forma o en cualquier otra?

(La solución de último recurso podría ser utilizar Logs Router para alimentar los registros del equilibrador de carga en una cola de pubsub (y excluirlos de los sumideros de registro normales) y volver a enviarlos a los sumideros normales con campos configurados adecuadamente por algún Cloud Function u otro consumidor de pubsub, pero eso parece ser mucho trabajo y complejidad para este propósito.)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Integración de Cloud Trace y Cloud Logging

    Según la documentación en https://cloud.google.com/trace/docs/trace-log-integration, Cloud Trace y Cloud Logging se integran perfectamente en la mayoría de los casos. Sin embargo, hay un problema conocido en el que los registros de solicitudes HTTP generados por un Load Balancer no se integran en el sistema Cloud Trace y no se pueden ver mediante la opción “mostrar detalles de la traza”.

    Integración de registros del Load Balancer

    En el caso de los registros LB, se muestra el icono de trazas, y los registros están asociados con una traza general en el sistema Cloud Trace, pero la opción “mostrar detalles de la traza” aparece en gris. Esto significa que los usuarios no pueden ver los registros y detalles de la traza asociados con los registros LB.

    Solución al problema

    En el caso de los registros/trazas a nivel de aplicación, el atributo traceSampled se puede establecer en LogEntry para resolver el problema. Sin embargo, esto no funciona para los registros del LB ya que su generación no se puede controlar.

    Una solución potencial para este problema es usar un encabezado de respuesta para indicar que se muestre la muestra, lo que podría ser observado por el LB y hacer que emita el registro correspondiente. Desafortunadamente, no hay documentación sobre esta función en los documentos.

    Otra solución es usar Logs Router para alimentar los registros del LB en una cola pub/sub y excluirlos de los sumideros de registros normales, luego volver a enviarlos a los sumideros normales con los campos establecidos correctamente por una función en la nube u otro consumidor de pub/sub. Esto puede parecer complejo y llevar tiempo, pero se puede usar como último recurso.

Comments are closed.