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 de fallas del monitor sintético y de la verificación de tiempo de actividad:

Busca registros

En esta sección, se proporciona información para encontrar 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. 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"
      

      Para los monitores sintéticos, en el menú Recurso, 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"
      
    • Los registros de búsqueda 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 hacen lo siguiente:

      • Para realizar consultas con el ID del monitor sintético o la verificación del 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 registros que contengan datos de respuesta para las solicitudes emitidas por monitores sintéticos y 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:

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

      • Para 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 obtiene 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 Cómo enumerar direcciones IP.

Cómo solucionar problemas con las notificaciones

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

Un verificador falló, pero otros no

Estás revisando tus métricas de verificación de tiempo de actividad y observas que una verificación informó un error cuando todas las demás verificaciones informaron un resultado correcto.

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

Cuando solo un verificador informa un error, es posible que ese error sea el resultado del tiempo de espera del comando del verificador debido a un problema de red. Es decir, en lugar de que el comando falle, 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, haz una de las siguientes acciones:

    • Para determinar cuándo ocurrió la falla en las verificaciones de tiempo de actividad, 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. 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ó la verificación de tiempo de actividad por primera vez, es posible que debas modificar el período del gráfico. El selector de período se encuentra en la barra de herramientas de la página Detalles del tiempo de actividad.

    • Para determinar cuándo se produjo la falla en los monitores sintéticos, consulta la página Detalles del tiempo de actividad:

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

        Ve a Supervisión sintética.

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

      2. 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 de esta página titulada Cómo encontrar registros.

No se te notifica que falló 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 Verificaciones aprobadas muestra que al menos un verificador falló. Sin embargo, no recibiste ninguna 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. Haz clic en Ver todas las políticas en el panel Políticas.
  3. 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 las 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 fallan

Configuraste 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 Lista de direcciones IP de los servidores de verificación del tiempo de actividad.
  • Nombre o servicio no encontrado: Es posible que el nombre de host sea 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 Lista de direcciones IP de los servidores de verificación de tiempo de actividad. El límite de tiempo de espera se especifica como parte de las opciones de Validación de respuestas.

Para ayudarte a solucionar problemas relacionados con las verificaciones de tiempo de actividad públicas que fallan, puedes configurar tus verificaciones de tiempo de actividad para que envíen hasta 3 pings ICMP durante la verificación. Los pings pueden ayudarte a distinguir entre fallas causadas, por ejemplo, por problemas de conectividad de red y por tiempos de espera en tu aplicación. Para obtener más información, consulta Cómo usar pings 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.

No se puede crear la verificación de tiempo de actividad

La configuración de tu proyecto de 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, la creación de la verificación de tiempo de actividad falla.

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

Consola de Google Cloud

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

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

API: Proyecto de definición de alcance

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

  • La primera creación de la verificación de tiempo de actividad se realiza correctamente si tu proyecto permite las asignaciones de roles automáticas 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 a las cuentas de servicio. Se crea una cuenta de servicio, pero no se otorgan roles.

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

  1. Autoriza la cuenta de servicio.
  2. Espera unos minutos para que se propaguen los permisos.
  3. Vuelve a 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 se orienta a un servicio del Directorio de servicios en un proyecto supervisado o a recursos privados en un proyecto de 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 de Google Cloud que usas y sus relaciones. Es posible que tengas hasta cuatro proyectos involucrados:

  • El proyecto en el que definiste la verificación de tiempo de actividad privada.
  • El proyecto supervisado en el que configuraste el servicio de Directorio de servicios
  • 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 ningún rol en la autorización de cuentas de servicio que se describe aquí.

Cuando falle 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 crear la verificación de tiempo de actividad privada.

Acceso denegado

Tus verificaciones de tiempo de actividad fallan con resultados VPC_ACCESS_DENIED. Este resultado significa que algún aspecto de la configuración de 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 delimitación o un proyecto supervisado, como se describe en La creación de la verificación del tiempo de actividad falla.

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 del 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 muestran errores o resultados inesperados. Esto puede ocurrir si anulaste los valores predeterminados del encabezado.

Cuando se envía una solicitud para una verificación de tiempo de actividad privada a un extremo de destino, esta 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 las publicaciones de tiempo de actividad

Si intentas anular estos valores, es posible que ocurra lo siguiente:

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

No hay datos visibles

No verás ningún dato en el panel de verificación del tiempo de actividad cuando la verificación del tiempo de actividad esté en un proyecto de Google Cloud diferente al servicio de Directorio de servicios.

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

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

Soluciona problemas de los 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 te 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 un 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 seguimiento.

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 consola de Google Cloud, 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. Selecciona Incluir asignaciones de roles proporcionadas por Google.
  3. Si la cuenta de servicio que usa tu monitor sintético no aparece en la lista o si no se le otorgó un rol que incluya los permisos del rol de agente de Cloud Trace (roles/cloudtrace.agent), otórgale 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 Supervisión sintética, se muestra un monitor sintético con el estado In progress. Un estado de 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ó, prueba lo siguiente:

  • Asegúrate de que el nombre de tu función de Cloud Run no contenga virgulillas. Si hay una línea baja, quítala 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 funciones de Cloud Run de 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, la función no se pudo implementar.

    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 Supervisión sintética, se muestra un monitor sintético con el estado Warning. Un estado de Warning significa que los resultados de la ejecución son incoherentes. Esto podría indicar un problema de diseño con la prueba o que lo que se está probando tiene un comportamiento incoherente.

Estado de rechazo

En Monitores sintéticos, se muestra un monitor sintético con el estado Failing. Para obtener más información sobre el motivo de la falla, 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 esta falla, debes cambiar el objetivo de tu monitor sintético.

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

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

No se puede borrar 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 la falla, borra las políticas de alertas que supervisen 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 modificar el tiempo de espera del URI, los reintentos, el selector de espera 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  Synthetic monitoring:

    Ve a Supervisión sintética.

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

  2. Busca el monitor sintético que deseas editar, haz clic en Más opciones y, luego, selecciona Editar.
  3. Haz clic en Editar función.
  4. 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.

  5. Haz clic en Guardar.

La consola de Google Cloud muestra que no se pueden guardar las 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, prueba 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.