Solución de problemas

En esta página, se incluye información para solucionar problemas de Trace.

No hay datos en la interfaz de Trace

Si no puedes ver ningún seguimiento en tu proyecto de Google Cloud cuando esperas que estén presentes, prueba los siguientes pasos:

  1. Habilita la API de Cloud Trace.

    Habilita la API

  2. En la consola de Google Cloud, ve a la página APIs y servicios:

    Ir a APIs y servicios

    Una vez que encuentres la fila etiquetada como API de Cloud Trace, intenta lo siguiente:

    • Si en la columna Solicitudes no se incluye información numérica, no se envían datos de seguimiento a tu proyecto de Google Cloud.

      A fin de 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 Errors by API method:

      • Si las operaciones de escritura fallan, otorga a la cuenta de servicio que proporciona las credenciales de autenticación la función de agente de Cloud Trace (roles/cloudtrace.agent). Esta función incluye el permiso cloudtrace.traces.patch, que permite a las aplicaciones escribir datos de intervalos en un proyecto de Google Cloud.

        Para obtener más información, consulta Funciones de IAM de Cloud Trace.

      • Si las lecturas fallan, asegúrate de que tu función de IAM en el proyecto de Google Cloud incluya los permisos de la función de Usuario de Cloud Trace (roles/cloutrace.user). Si deseas obtener una lista de permisos para esta función, consulta Funciones de IAM de Cloud Trace.

No hay datos de seguimiento después de actualizar la app de Go para usar OpenTelemetry

La aplicación depende de la biblioteca cliente para capturar seguimientos y, después de actualizar la aplicación para usar OpenTelemetry, ya no verás los datos de Cloud Trace.

Debido a que algunas bibliotecas cliente de Google para Go están integradas en OpenCensus, debes usar OpenCensus. Si deseas obtener más información sobre el problema que resuelve el puente, consulta OpenCensus Bridge.

Si deseas obtener información sobre la actualización de la biblioteca cliente de Google para Go, consulta el error #4237.

No hay datos de seguimiento para la app implementada

Implementaste una app que envía datos a tu proyecto de Google Cloud mediante 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 de la sección titulada No hay datos en la interfaz de Trace.

  • Si la app no está implementada 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 la función de agente de Cloud Trace (roles/cloudtrace.agent).

    Esta función incluye el permiso cloudtrace.traces.patch, que permite a las aplicaciones escribir datos de intervalos en un proyecto de Google Cloud.

  • Si la app depende de OpenTelemetry, haz lo siguiente:

    • Para el servicio raíz, intenta actualizar las variables de entorno de modo que OpenTelemetry use el muestreo traceidratio con una tasa de muestreo de 0.5:

      export OTEL_TRACES_SAMPLER="traceidratio"
      export OTEL_TRACES_SAMPLER_ARG="0.5"
      
    • En el caso de todos los demás servicios, deja la variable de entorno OTEL_TRACES_SAMPLER sin configurar para usar la muestra predeterminada, que es parentbased_always_on. La configuración predeterminada significa que la decisión de muestreo para un intervalo se hereda de su intervalo superior, si ese intervalo existe. Si un intervalo superior no existe, se muestrea el intervalo.

    A menos que tu aplicación siempre muestrea cada intervalo, en general, no es posible forzar el seguimiento de una solicitud de extremo a extremo porque cada componente 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 en true. Esta configuración es una sugerencia para que los componentes secundarios hagan un muestreo de la solicitud. Si quieres obtener más información sobre los encabezados de seguimiento, consulta Protocolos para la propagación de contextos.

Falta el mensaje de ID de intervalo en el seguimiento

El seguimiento contiene el mensaje "Falta el ID de intervalo".

En los sistemas de seguimiento distribuido, se esperan seguimientos incompletos. Un seguimiento está 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 muestreó el intervalo al que se hace referencia.
  • Se muestreó el intervalo al que se hace referencia, pero Cloud Trace aún no lo recibió o se recibió, pero no se almacenó.

Cuando observas un seguimiento incompleto, Cloud Trace muestra el mensaje “Falta ID de intervalo” en el panel de detalles del seguimiento.

Si ves el mensaje "Falta el ID de intervalo", prueba lo siguiente:

  • Para los componentes que administras, asegúrate de que respeten y propaguen la marca sampled del encabezado cuando este campo esté presente. Esta configuración es una sugerencia para que los componentes secundarios hagan un muestreo de la solicitud. Si quieres obtener más información sobre los encabezados de seguimiento, consulta Protocolos para la propagación de contextos.

    Por lo general, los servicios de Google Cloud respetan esta sugerencia. Sin embargo, también limitan la velocidad a la que se escriben los datos de seguimiento.

  • Si usas Cloud Service Mesh, asegúrate de seguir las instrucciones para propagar el contexto de seguimiento de esas opciones de configuración. Para obtener orientación sobre Cloud Service Mesh, consulta Propagación del contexto de seguimiento.