No hay datos en la interfaz de Trace
Si no puedes ver ningún seguimiento en tu proyecto de Google Cloud cuando deseas que aparezcan los datos de seguimiento, prueba los siguientes pasos:
-
Enable the Cloud Trace API.
En la consola de Google Cloud, ve a la página APIs y servicios:
Después de encontrar la fila etiquetada como API de Cloud Trace, prueba lo siguiente:
Si la columna etiquetada como Solicitudes no muestra información numérica, significa que no se están enviando datos de seguimiento a tu proyecto de Google Cloud.
Para resolver este caso, verifica tus aplicaciones y proxies para asegurarte de que estén configurados para enviar los seguimientos al proyecto correcto.
Selecciona API de Cloud Trace, selecciona la pestaña Métricas y, luego, busca el gráfico etiquetado como Errores por método de API:
Si las operaciones de escritura fallan, otorga a la cuenta de servicio que proporciona las credenciales de autenticación el rol de agente de Cloud Trace (
roles/cloudtrace.agent
). Este rol incluye el permisocloudtrace.traces.patch
, que permite que las aplicaciones escriban datos de intervalo en un proyecto de Google Cloud.Para obtener más información, consulta las funciones de IAM de Cloud Trace.
Si las lecturas fallan, asegúrate de que tu rol de IAM en el proyecto de Google Cloud incluya los permisos del rol de usuario de Cloud Trace (
roles/cloutrace.user
). Para obtener una lista de los permisos de este rol, consulta Funciones de IAM de Cloud Trace.
No hay datos de seguimiento después de actualizar la app de Go para usar OpenTelemetry
Tu aplicación depende de la biblioteca cliente para capturar seguimientos y, después de actualizarla para usar OpenTelemetry, ya no ves los datos de Cloud Trace.
Debido a que algunas bibliotecas cliente de Google para Go están integradas con OpenCensus, debes usar un puente de OpenCensus. Para obtener más información sobre el problema que resuelve el puente, consulta OpenCensus Bridge.
Para obtener información sobre la actualización de la biblioteca cliente de Google para Go, consulta el problema #4237.
No hay datos de seguimiento para la app implementada
Implementaste una app que envía datos a tu proyecto de Google Cloud con la API de Cloud Trace, pero no se recopilan datos de seguimiento.
Pruebe lo siguiente:
Si no ves ningún dato en la página Explorador de seguimiento de la consola de Google Cloud, sigue los pasos que se indican en la sección No hay datos en la interfaz de Trace.
Si la app no se implementó en Google Cloud o si usa una cuenta de servicio para proporcionar credenciales de autenticación, asegúrate de que la cuenta de servicio tenga el rol de Agente de Cloud Trace (
roles/cloudtrace.agent
).Este rol incluye el permiso
cloudtrace.traces.patch
, que permite que las aplicaciones escriban datos de intervalo en un proyecto de Google Cloud.Si la app depende de OpenTelemetry, haz lo siguiente:
Para el servicio raíz, intenta actualizar tus variables de entorno para que OpenTelemetry use el muestreador
traceidratio
con una tasa de muestreo de0.5
:export OTEL_TRACES_SAMPLER="traceidratio" export OTEL_TRACES_SAMPLER_ARG="0.5"
Para todos los demás servicios, deja la variable de entorno
OTEL_TRACES_SAMPLER
sin definir para usar el muestreador predeterminado, que esparentbased_always_on
. La configuración predeterminada significa que la decisión de muestreo de un intervalo se hereda de su intervalo superior, si existe. Si no existe un intervalo superior, se muestrea el intervalo.
A menos que tu aplicación siempre tome muestras de cada intervalo, en general, no es posible forzar que se realice un seguimiento de una solicitud de extremo a extremo, ya que cada componente de una solicitud de extremo a extremo toma su propia decisión de muestreo. Sin embargo, puedes influir en la decisión si agregas al encabezado de seguimiento una marca
sampled
, con esta marca establecida entrue
. Este parámetro de configuración es una sugerencia para los componentes secundarios para que tomen una muestra de la solicitud. Para obtener más información sobre los encabezados de seguimiento, consulta Protocolos para la propagación de contexto.
Falta el mensaje de ID de intervalo en el seguimiento
El seguimiento contiene el mensaje "Missing span ID".
En los sistemas de seguimiento distribuido, se esperan registros incompletos. Un seguimiento es incompleto cuando un intervalo muestreado contiene una referencia a otro intervalo que no se recibió. La referencia sin resolver puede ocurrir por los siguientes motivos:
- No se tomó una muestra del intervalo al que se hace referencia.
- Se tomó una muestra del intervalo al que se hace referencia, pero Cloud Trace aún no lo recibió, o bien se recibió, pero no se almacenó.
Cuando visualizas un seguimiento incompleto, Cloud Trace muestra el mensaje "Falta el ID de intervalo" en el panel de detalles del seguimiento.
Si ves constantemente el mensaje "Falta el ID de intervalo", prueba lo siguiente:
En el caso de los componentes que administras, asegúrate de que respeten y propaguen la marca
sampled
del encabezado, cuando este campo esté presente. Este parámetro de configuración es una sugerencia para los componentes secundarios para que tomen una muestra de la solicitud. Para obtener más información sobre los encabezados de seguimiento, consulta Protocolos para la propagación de contexto.Por lo general, los servicios de Google Cloud respetan esta sugerencia. Sin embargo, también limitan la velocidad a la que escriben los datos de seguimiento.
Si usas Cloud Service Mesh, asegúrate de seguir las instrucciones para propagar el contexto de seguimiento de esas configuraciones. Si deseas obtener orientación sobre Cloud Service Mesh, consulta Propagación del contexto de seguimiento.