Soluciona problemas relacionados con los monitores sintéticos y las verificaciones de tiempo de actividad

En este documento, se proporciona información para encontrar datos de registro y solucionar problemas relacionados con fallas en las verificaciones de tiempo de actividad y los monitores sintéticos:

Cómo encontrar los registros

En esta sección, se proporciona información para encontrar los registros de tus monitores sintéticos y verificaciones de tiempo de actividad:

  1. En la consola de Google Cloud , ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
  3. Sigue uno de estos pasos:

    • Para encontrar todos los registros asociados con tus monitores sintéticos o verificaciones de tiempo de actividad, realiza una consulta por tipo de recurso. Puedes usar el menú Recurso o ingresar una consulta.

      Para las verificaciones de tiempo de actividad, en el menú Recurso, selecciona URL de verificación de tiempo de actividad o ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      resource.type="uptime_url"
      

      En el menú Recurso de los monitores sintéticos, selecciona Revisión de Cloud Run o ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      resource.type="cloud_run_revision"
      
    • Para encontrar los registros que contienen información sobre la respuesta recibida durante la ejecución de un monitor sintético o una verificación de tiempo de actividad, realiza una de las siguientes acciones:

      • Para realizar una consulta con el ID del monitor sintético o la verificación de tiempo de actividad, usa el siguiente formato cuando ingreses el ID en el editor de consultas y, luego, haz clic en Ejecutar consulta.

        labels.check_id="my-check-id"
        
      • Para consultar los registros que contienen datos de respuesta para las solicitudes emitidas por los monitores sintéticos y las verificaciones de tiempo de actividad, ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta.

        "UptimeCheckResult"
        

        La consulta anterior coincide con todas las entradas de registro que incluyen la cadena "UptimeCheckResult".

      Estos registros incluyen lo siguiente:

      • Es el ID del monitor sintético o de la verificación de tiempo de actividad, que se almacena en el campo labels.check_id.

      • En el caso de los monitores sintéticos, el nombre de tu función de Cloud Run, que se almacena en el campo resource.labels.service_name

      • Cuando se recopilan datos de seguimiento, se incluye el ID de un seguimiento asociado, que se almacena en el campo trace.

    • Para verificar que tu servicio recibió solicitudes de los servidores de Google Cloud , copia la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      "GoogleStackdriverMonitoring-UptimeChecks"
      

      El campo protoPayload.ip contiene una de las direcciones que usan los servidores de verificación de tiempo de actividad. Para obtener información sobre cómo enumerar todas las direcciones IP, consulta Enumera direcciones IP.

Cómo solucionar problemas con las notificaciones

En esta sección, se describen algunos errores que pueden surgir cuando configuras políticas de alertas y se proporciona información para resolverlos.

Falló un verificador, pero no los demás

Estás revisando las métricas de tu verificación de tiempo de actividad y observas que un verificador informó una falla cuando todos los demás verificadores informaron un éxito.

No es necesario que realices ninguna acción para resolver esta situación.

Cuando solo un verificador informa una falla, es posible que esta sea el resultado del tiempo de espera agotado del comando del verificador debido a un problema de red. Es decir, en lugar de fallar, el comando no se completa dentro del tiempo de espera especificado.

Las políticas de alertas que usan la configuración predeterminada requieren fallas de al menos dos verificadores antes de crear un incidente y enviar una notificación. Una falla informada por un solo verificador no genera una notificación.

Recibiste una notificación y quieres depurar el error

  1. Para identificar cuándo comenzó la falla, realiza una de las siguientes acciones:

    • En el caso de las verificaciones de tiempo de actividad, para determinar cuándo ocurrió la falla, consulta la página Detalles del tiempo de actividad:

      1. En la consola de Google Cloud , ve a la página  Verificaciones de tiempo de actividad:

        Ve a Verificaciones de tiempo de actividad

        Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

      2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
      3. Busca y selecciona la verificación de tiempo de actividad.

        En el gráfico Verificaciones aprobadas, se muestra el historial de las verificaciones. Para identificar cuándo falló por primera vez la verificación de tiempo de actividad, es posible que debas modificar el período del gráfico. El selector de rango de tiempo se encuentra en la barra de herramientas de la página Detalles de tiempo de actividad.

    • En el caso de los monitores sintéticos, para determinar cuándo ocurrió la falla, consulta la página Detalles del tiempo de actividad:

      1. En la consola de Google Cloud , ve a la página  Supervisión sintética:

        Ir a Synthetic monitoring

        Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

      2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
      3. Busca y selecciona el monitor sintético.
  2. Para obtener información sobre cómo encontrar los datos de registro asociados, consulta la sección Cómo encontrar registros de esta página.

No recibes notificaciones cuando falla una verificación de tiempo de actividad

Configuraste una verificación de tiempo de actividad y estás viendo la página Detalles de tiempo de actividad de esa verificación. Observas que el gráfico Passed checks muestra que falló al menos un verificador. Sin embargo, no recibiste una notificación.

De forma predeterminada, la política de alertas está configurada para crear un incidente y enviar una notificación cuando los verificadores de al menos dos regiones no reciben una respuesta a una verificación de tiempo de actividad. Estas fallas deben ocurrir de forma simultánea.

Puedes editar la condición de la política de alertas para que se te notifique cuando una sola región no reciba una respuesta. Sin embargo, te recomendamos que uses la configuración predeterminada, que reduce la cantidad de notificaciones que podrías recibir debido a fallas transitorias.

Para ver o editar una política de alertas, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página  Alertas:

    Ir a las Alertas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
  3. Haz clic en Ver todas las políticas en el panel Políticas.
  4. Busca la política que quieres ver o editar y, luego, haz clic en su nombre.

    Puedes ver y editar la política desde la página Detalles de la política.

Soluciona problemas de verificaciones de tiempo de actividad públicas

En esta sección, se describen algunos errores que puedes encontrar cuando usas las verificaciones de tiempo de actividad públicas y se proporciona información para resolverlos.

Tus verificaciones de tiempo de actividad públicas están fallando

Configuras una verificación de tiempo de actividad pública, pero recibes un error cuando realizas el paso de verificación.

Las siguientes son algunas de las posibles causas de una falla en la verificación del tiempo de actividad:

  • Error de conexión: rechazado: si utilizas el tipo de conexión HTTP predeterminado, verifica que tengas instalado un servidor web que responda a las solicitudes HTTP. Puede ocurrir un error de conexión en una instancia nueva si no instalaste un servidor web. Consulta la Guía de inicio rápido para Compute Engine. Si usas un tipo de conexión HTTPS, es posible que debas realizar pasos de configuración adicionales. Si tienes problemas con el firewall, consulta Cómo obtener direcciones IP para la verificación del tiempo de actividad.
  • Nombre o servicio no encontrado: El nombre de host puede ser incorrecto.
  • 403 Prohibido: El servicio muestra un código de error al verificador de tiempo de actividad. Por ejemplo, la configuración predeterminada de Apache Web Server muestra este código en Amazon Linux, pero aparece el código 200 (Success) en algunas otras versiones de Linux. Consulta el instructivo de LAMP para Amazon Linux o la documentación de tu servidor web.
  • 404 No encontrado: La ruta de acceso podría ser incorrecta.
  • 408 Tiempo de espera de solicitud o no hay respuesta: el número de puerto puede ser incorrecto, el servicio puede no estar ejecutándose, no se puede acceder al servicio o el tiempo de espera puede ser demasiado bajo. Verifica que tu firewall permita el tráfico de los servidores de tiempo de actividad. Consulta Cómo obtener direcciones IP para la verificación del tiempo de actividad. El límite de tiempo de espera se especifica como parte de las opciones de Validación de respuesta.

Para ayudarte a solucionar problemas relacionados con las verificaciones de tiempo de actividad públicas con errores, puedes configurar tus verificaciones de tiempo de actividad para que envíen hasta 3 pings de ICMP durante la verificación. Los pings pueden ayudarte a distinguir entre las fallas causadas, por ejemplo, por problemas de conectividad de red y por tiempos de espera agotados en tu aplicación. Para obtener más información, consulta Usa pings de ICMP.

Soluciona problemas de verificaciones de tiempo de actividad privadas

En esta sección, se describen algunos errores que puedes encontrar cuando usas verificaciones de tiempo de actividad privadas y se proporciona información para resolverlos.

Falla la creación de la verificación de tiempo de actividad

La configuración de tu proyecto Google Cloud podría impedir la modificación de los roles asignados a la cuenta de servicio que usan las verificaciones de tiempo de actividad para administrar las interacciones con el servicio de Directorio de servicios. En esta situación, falla la creación de la verificación de tiempo de actividad.

En esta sección, se describe cómo puedes otorgar los roles que requiere la cuenta de servicio:

Google Cloud console

Cuando usas la consola de Google Cloud para crear la verificación de tiempo de actividad privada, la consola de Google Cloud emite los comandos para otorgar los roles del Directorio de servicios a la cuenta de servicio.

Para obtener información sobre cómo otorgar roles a una cuenta de servicio, consulta Autoriza la cuenta de servicio.

API: Proyecto de permisos

La primera vez que crees una verificación privada de tiempo de actividad para un servicio de Directorio de servicios y recursos privados en un solo proyecto Google Cloud , es posible que la solicitud se realice correctamente o no. El resultado depende de si inhabilitaste la concesión automática de roles para las cuentas de servicio en tu proyecto:

  • La primera creación de una verificación de tiempo de actividad se realiza correctamente si tu proyecto permite el otorgamiento automático de roles para las cuentas de servicio. Se crea una cuenta de servicio para ti y se le otorgan los roles necesarios.

  • La primera creación de la verificación de tiempo de actividad falla si tu proyecto no permite la asignación automática de roles para las cuentas de servicio. Se crea una cuenta de servicio, pero no se otorgan roles.

Si falla la creación de la verificación de tiempo de actividad, haz lo siguiente:

  1. Autoriza la cuenta de servicio.
  2. Espera unos minutos para que se propaguen los permisos.
  3. Vuelve a intentar crear la verificación de tiempo de actividad privada.

API: Proyecto supervisado

La primera vez que creas una verificación de tiempo de actividad privada que tiene como objetivo un servicio de Directorio de servicios en un proyecto supervisado o recursos privados en un proyecto Google Cloud diferente, la solicitud falla y se crea una cuenta de servicio de Monitoring.

La forma en que autorizas la cuenta de servicio depende de la cantidad de proyectos deGoogle Cloud que usas y sus relaciones. Es posible que haya hasta cuatro proyectos involucrados:

  • Es el proyecto en el que definiste la verificación de tiempo de actividad privada.
  • Es el proyecto supervisado en el que configuraste el servicio de Directorio de servicios.
  • Es el proyecto en el que configuraste la red de VPC.
  • Es el proyecto en el que se configuran los recursos de red, como las VMs o los balanceadores de cargas. Este proyecto no tiene ninguna función en la autorización de la cuenta de servicio que se analiza aquí.

Cuando falla la creación de la primera verificación de tiempo de actividad, haz lo siguiente:

  1. Autoriza la cuenta de servicio.
  2. Espera unos minutos para que se propaguen los permisos.
  3. Vuelve a intentar crear la verificación de tiempo de actividad privada.

Acceso denegado

Tus verificaciones de tiempo de actividad fallan con resultados de VPC_ACCESS_DENIED. Este resultado significa que algún aspecto de la configuración de tu red o de la autorización de la cuenta de servicio no es correcto.

Verifica la autorización de tu cuenta de servicio para usar un proyecto de alcance o un proyecto supervisado, como se describe en Falla la creación de la verificación de tiempo de actividad.

Para obtener más información sobre cómo acceder a redes privadas, consulta Configura el proyecto de red.

Resultados anómalos de las verificaciones de tiempo de actividad privadas

Tienes un servicio de Directorio de servicios con varias VMs, y la configuración del servicio contiene varios extremos. Cuando apagas una de las VMs, la verificación de tiempo de actividad sigue indicando que se realizó correctamente.

Cuando la configuración de tu servicio contiene varios extremos, se elige uno al azar. Si la VM asociada con el extremo elegido está en ejecución, la verificación de tiempo de actividad se realiza correctamente, aunque una de las VMs esté inactiva.

Encabezados predeterminados

Tus verificaciones de tiempo de actividad devuelven errores o resultados inesperados. Esto puede ocurrir si anulaste los valores predeterminados de los encabezados.

Cuando se envía una solicitud para una verificación de tiempo de actividad privada a un extremo de destino, la solicitud incluye los siguientes encabezados y valores:

Encabezado Valor
HTTP_USER_AGENT GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
HTTP_CONNECTION keep-alive
HTTP_HOST IP del extremo del Directorio de servicios
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH Se calcula a partir de los datos de publicaciones sobre el tiempo de actividad

Si intentas anular estos valores, puede ocurrir lo siguiente:

  • La verificación de tiempo de actividad informa errores
  • Se descartan los valores de anulación y se reemplazan por los valores de la tabla.

No se ven datos

No ves ningún dato en el panel de la verificación de tiempo de actividad cuando esta se encuentra en un proyecto Google Cloud diferente del servicio de Directorio de servicios.

Asegúrate de que el proyecto Google Cloud que contiene la verificación de tiempo de actividad supervise el proyecto Google Cloud que contiene el servicio de Directorio de servicios.

Para obtener más información sobre cómo enumerar los proyectos supervisados y agregar otros, consulta Configura un permiso de métricas para varios proyectos.

Soluciona problemas de monitores sintéticos

En esta sección, se proporciona información que puedes usar para solucionar problemas de tus monitores sintéticos.

Mensaje de error después de habilitar las APIs

Abres el flujo de creación de un monitor sintético y se te solicita que habilites al menos una API. Después de habilitar las APIs, se muestra un mensaje similar al siguiente:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

El mensaje de error recomienda que verifiques que la API esté habilitada y, luego, te aconseja que esperes y vuelvas a intentar la acción.

Para verificar que la API esté habilitada, ve a la página APIs y servicios de tu proyecto:

Ir a API y servicios.

Después de verificar que la API esté habilitada, puedes continuar con el flujo de creación. La condición se resuelve automáticamente después de que la habilitación de la API se propaga a través del backend.

No se realiza el seguimiento de las solicitudes HTTP salientes

Configuras tu monitor sintético para recopilar datos de seguimiento de las solicitudes HTTP de salida. Tus datos de seguimiento solo muestran un intervalo, similar a la siguiente captura de pantalla:

Cloud Trace muestra solo un registro.

Para resolver esta situación, asegúrate de que a tu cuenta de servicio se le haya otorgado el rol de agente de Cloud Trace (roles/cloudtrace.agent). También es suficiente con el rol de editor (roles/editor).

Para ver los roles otorgados a tu cuenta de servicio, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página IAM:

    Ir a IAM

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

  2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
  3. Selecciona Incluir asignaciones de roles proporcionadas por Google.
  4. Si no aparece la cuenta de servicio que usa tu monitor sintético o si no se le otorgó un rol que incluya los permisos del rol de agente de Cloud Trace (roles/cloudtrace.agent), otorga este rol a tu cuenta de servicio.

    Si no conoces el nombre de tu cuenta de servicio, selecciona Cuentas de servicio en el menú de navegación.

Estado En curso

En la página Monitores sintéticos, se muestra un monitor sintético con el estado In progress. El estado In progress significa que el monitor sintético se creó recientemente y no hay datos para mostrar, o que no se pudo implementar la función.

Para determinar si la función no se implementó, haz lo siguiente:

  • Asegúrate de que el nombre de tu función de Cloud Run no contenga un guion bajo. Si hay un guion bajo, quítalo y vuelve a implementar la función de Cloud Run.

  • Abre la página Detalles del monitor sintético del monitor sintético.

    Si ves el siguiente mensaje, borra el monitor sintético.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    El mensaje de error indica que se borró la función y, por lo tanto, el monitor sintético no puede ejecutarla.

  • Abre la página de Cloud Run Functions para la función. Para abrir esta página desde la página Detalles del monitor sintético, haz clic en Código y, luego, en el nombre de la función.

    Si ves un mensaje similar al siguiente, significa que no se pudo implementar la función.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Para resolver esta falla, revisa el código de la función y corrige los errores que impiden que se compile o implemente.

Cuando creas un monitor sintético, la función puede tardar varios minutos en implementarse y ejecutarse.

Estado de advertencia

En Monitores sintéticos, se muestra un monitor sintético con el estado Warning. Un estado Warning significa que los resultados de la ejecución son incoherentes. Esto podría indicar un problema de diseño con tu prueba o que lo que se está probando tiene un comportamiento incoherente.

Estado de falla

En Monitores sintéticos, se muestra un monitor sintético con el estado Failing. Para obtener más información sobre el motivo del error, consulta el historial de ejecución más reciente.

  • Si se muestra el mensaje de error Request failed with status code 429, significa que el destino de la solicitud HTTP rechazó el comando. Para resolver este error, debes cambiar el destino de tu monitor sintético.

    El extremo https://www.google.com rechaza las solicitudes realizadas por los monitores sintéticos.

  • Si la falla devuelve un tiempo de ejecución de 0ms, es posible que la función de Cloud Run se esté quedando sin memoria. Para resolver este error, edita tu función de Cloud Run, aumenta la memoria a, al menos, 2 GiB y establece el campo de CPU en 1.

Falla la eliminación de un monitor sintético

Usas la API de Cloud Monitoring para borrar un monitor sintético, pero la llamada a la API falla con una respuesta similar a la siguiente:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Para resolver el error, borra las políticas de alertas que supervisan los resultados del monitor sintético y, luego, borra el monitor sintético.

No se puede editar la configuración de un verificador de vínculos rotos

Creaste un verificador de vínculos rotos con la consola de Google Cloud y quieres cambiar los elementos HTML que se prueban, o bien quieres modificar el tiempo de espera de URI, los reintentos, la espera del selector y las opciones por vínculo. Sin embargo, cuando editas el verificador de vínculos rotos, la consola de Google Cloud no muestra los campos de configuración.

Para resolver este error, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página  Supervisión sintética:

    Ir a Synthetic monitoring

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
  3. Busca el monitor sintético que deseas editar, haz clic en Más opciones y, luego, selecciona Editar.
  4. Haz clic en Editar función.
  5. Edita el objeto options en el archivo index.js y, luego, haz clic en Aplicar función.

    Para obtener información sobre los campos y la sintaxis de este objeto, consulta broken-links-ok/index.js.

  6. Haz clic en Guardar.

Google Cloud La consola muestra que fallan los guardados de capturas de pantalla

Creaste un verificador de vínculos rotos y lo configuraste para guardar capturas de pantalla. Sin embargo, la consola de Google Cloud muestra uno de los siguientes mensajes de advertencia junto con información más detallada:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Para resolver estos errores, intenta lo siguiente:

  • Si ves el mensaje InvalidStorageLocation, verifica la existencia del bucket de Cloud Storage especificado en el campo llamado options.screenshot_options.storage_location.

  • Visualiza los registros relacionados con tu función de Cloud Run. Para obtener más información, consulta Cómo encontrar registros.

  • Verifica que la cuenta de servicio que se usa en la función de Cloud Run correspondiente tenga un rol de Identity and Access Management que le permita crear, acceder y escribir en buckets de Cloud Storage.