Un monitor sintético de verificación de vínculos rotos te permite probar periódicamente los vínculos de una página web para detectar URLs inaccesibles. Puedes configurar las opciones de prueba, como el URI de origen, el límite de vínculos y el recuento de reintentos, en una función de Cloud Run preconfigurada. Para ayudarte a solucionar problemas de fallas, cada ejecución guarda resultados detallados y capturas de pantalla de las respuestas que ven tus usuarios.
Para obtener información sobre los monitores sintéticos, consulta Acerca de los monitores sintéticos.
Acerca de los verificadores de vínculos rotos
Cada verificador de vínculos rotos prueba los vínculos de forma serial, y hay un tiempo de espera sintético general, que se puede configurar.
De forma predeterminada, un verificador de vínculos rotos hace lo siguiente:
- Busca en el URI de origen elementos de anclaje HTML con atributos
href. - Prueba los primeros 10 vínculos que se encuentran en el URI de origen.
- Para cada vínculo, el verificador emite una solicitud y, luego, espera un máximo de 30 segundos para recibir una respuesta. Cuando se recibe una respuesta, el verificador comprueba que el estado de la respuesta HTTP sea
200, lo que indica que la respuesta fue exitosa. El verificador no realiza reintentos.
Especificas el URI de origen. Puedes configurar qué elementos HTML busca el verificador de vínculos rotos, la cantidad máxima de elementos probados, el tiempo de espera por prueba y si se realizan reintentos. También puedes configurar verificadores de vínculos rotos para que esperen a que aparezca un selector.
Los verificadores de vínculos rotos usan la plantilla broken-links-ok. La configuración de un verificador de vínculos rotos se especifica con el objeto options del archivo index.js. Si creas tu verificador con la consola deGoogle Cloud , se te solicitará cada opción de configuración y se actualizará la función de Cloud Run por ti. Sin embargo, si usas la API de Cloud Monitoring o Terraform, debes completar este objeto.
Después de crear un verificador de vínculos rotos, para modificar la configuración, actualiza el objeto options y vuelve a implementar la función de Cloud Run.
Antes de comenzar
Configura tu proyecto y tus roles de IAM, y selecciona la interfaz que planeas usar. Para las configuraciones de App Hub, selecciona el proyecto host o el proyecto de administración de App Hub.
Configura tu proyecto y tus roles
-
Para obtener los permisos que necesitas para ver y modificar monitores sintéticos con la consola de Google Cloud , pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Editor de Monitoring (
roles/monitoring.editor) - Desarrollador de Cloud Functions (
roles/cloudfunctions.developer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
- Editor de Monitoring (
-
Habilita la API de Cloud Monitoring, Artifact Registry, API de Cloud Build, API de Cloud Functions, API de Cloud Logging, API de Pub/Sub y Cloud Run Admin si alguna aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles. Verifica que tu proyecto Google Cloud contenga la cuenta de servicio predeterminada de Compute Engine. Esta cuenta de servicio se crea cuando habilitas la API de Compute Engine y tiene un nombre similar a
12345-compute@developer.gserviceaccount.com.En la consola de Google Cloud , ve a la página Cuentas de servicio:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.
Si no existe la cuenta de servicio predeterminada de Compute Engine, haz clic en Crear cuenta de servicio y completa el diálogo.
Asegúrate de que a la cuenta de servicio predeterminada de Compute Engine o a la cuenta de servicio que creaste se le haya otorgado el rol de Editor (
roles/editor).Para ver los roles otorgados a tu cuenta de servicio, haz lo siguiente:
-
En la consola de Google Cloud , ve a la página IAM:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.
- Selecciona Incluir asignaciones de roles proporcionadas por Google.
- Si no se muestra 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.
-
- Configura los canales de notificaciones que deseas usar para recibir notificaciones. Te recomendamos que crees varios tipos de canales de notificaciones. Para obtener más información, consulta Cómo crear y administrar canales de notificaciones y Cómo crear y administrar canales de notificaciones con la API.
Selecciona la interfaz que planeas usar
Console
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Si usas una shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se muestra un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
Crea un verificador de vínculos rotos
Console
Cuando creas un monitor sintético con la Google Cloud consola, se implementa una nueva Cloud Run Function (2ª gen.) y se crea el monitor para esa función. No puedes crear un monitor sintético que supervise una función de Cloud Run existente.
Asegúrate de haber habilitado las APIs requeridas, de que tu proyecto contenga una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le haya otorgado el rol de Editor (
roles/editor). Para obtener más información, consulta Antes de comenzar.-
En la consola de Google Cloud , ve a la página
Supervisión sintética:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto de Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host o el proyecto de administración de App Hub.
- Selecciona Crear un monitor sintético.
- En la plantilla, selecciona Verificador de vínculos rotos.
- Ingresa un nombre para el monitor sintético.
Opcional: Actualiza el Tiempo de espera de respuesta y la Frecuencia de verificación, y agrega etiquetas definidas por el usuario.
Configura el URI y los elementos que se probarán:
Haz clic en URI de origen y, luego, ingresa el URI que deseas probar. El valor que ingreses debe ser un extremo HTTP o HTTPS. Por ejemplo, puedes ingresar
https://mywebsite.example.com.Opcional: En Cantidad de vínculos a seguir, actualiza la cantidad máxima de vínculos que se prueban. El valor predeterminado de este campo es 10.
Opcional: En el campo Selector de elementos HTML, ingresa los elementos HTML que deseas que coincidan, como una lista separada por comas. El valor que ingresas se convierte en una cadena y, luego, se pasa al método
Document: querySelectorAll().De forma predeterminada, este campo se establece en
a, que coincide con las anclas. Puedes ingresar valores comoa, imgcuando desees hacer coincidir tanto anclajes como imágenes.Opcional: En el campo Atributos HTML que se deben seguir, ingresa los atributos HTML con los que deseas que coincida. Los valores separados por comas que ingresas se pasan individualmente al método
getAttribute().De forma predeterminada, este campo se establece en
href, que especifica el URI del vínculo. Puedes ingresar varios atributos; por ejemplo, puedes ingresarhref, src. En este ejemplo, el código busca el atributohrefy, luego, el atributosrc.Opcional: Configura la espera del selector, el tiempo de espera por URI, los reintentos y los códigos de estado esperados:
- Haz clic en Mostrar más opciones.
Para configurar el verificador de vínculos rotos de modo que espere a que aparezca un selector específico en el URI antes de que se extraigan los vínculos, ingresa los selectores CSS en el campo Esperar selector de elemento. El valor que ingresas se convierte en una cadena y, luego, se pasa al método
page.waitForSelector().Si el selector no aparece antes de que venza el tiempo de espera, el error se registra en los registros.
Actualiza el orden en el que se seleccionan los vínculos para las pruebas.
Configura los reintentos.
De forma predeterminada, se envía una solicitud a cada vínculo. Si la solicitud inicial falla por algún motivo (por ejemplo, se agota el tiempo de espera del comando o el código de estado HTTP no es
200), el vínculo se marca como fallido.Este campo especifica la cantidad de veces que el verificador de vínculos rotos puede emitir una solicitud HTTP a un vínculo antes de marcarlo como fallido.
Configura un tiempo de espera que se aplique a cada URI. De forma predeterminada, este valor se establece en 30 segundos.
Para especificar el código de estado y el tiempo de espera esperados para un URI específico, haz clic en Agregar opción por vínculo y completa el diálogo.
Opcional: Configura si se recopilan y guardan capturas de pantalla de las respuestas. Si usas la configuración predeterminada, no se guardarán las capturas de pantalla. Si habilitas la recopilación de capturas de pantalla, puedes recopilarlas para todas las pruebas o solo para las que fallan. Cloud Monitoring usa la siguiente convención para nombrar el bucket de Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATIONEn la expresión anterior, se dan las siguientes situaciones:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la ubicación de tu bucket de Cloud Storage.
Puedes usar un bucket de Cloud Storage existente.
Revisa tu configuración y asegúrate de que sea correcta y esté completa. Luego, crea tu Cloud Run Function:
Haz clic en Crear función.
Los valores de los campos de configuración del URI se copian en el objeto
optionsdel archivoindex.jscuando haces clic en Crear función. Después de hacer clic en Crear función, para cambiar la configuración, edita el objetooptions.Ingresa un nombre visible y selecciona una región. Los nombres deben ser únicos dentro de una región.
En la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad, haz lo siguiente:
En la pestaña Conexiones, asegúrate de que esté seleccionada la opción Permitir todo el tráfico.
Revisa la configuración predeterminada y actualízala cuando sea necesario.
- En el campo Cuenta de servicio del tiempo de ejecución, selecciona una cuenta de servicio.
Haz clic en Aplicar función.
Configura la política de alertas:
Opcional: Actualiza el nombre de la política de alertas y la duración de la falla antes de que se envíen las notificaciones.
Agrega los canales de notificaciones.
Haz clic en Crear.
La función de Cloud Run que definiste se compila y se implementa como 2ª gen., y se crea el monitor sintético.
Terraform
El proceso de creación de un verificador de vínculos rotos con Terraform es idéntico al proceso de creación de cualquier otro monitor sintético. Para obtener información sobre cómo usar Terraform para crear un monitor sintético, consulta Crea un monitor sintético y selecciona la pestaña Terraform.
Los verificadores de vínculos rotos usan la plantilla broken-links-ok. La configuración de un verificador de vínculos rotos se especifica con el objeto options del archivo index.js.
Cuando se define la estructura options.screenshot_options, el verificador de vínculos rotos recopila capturas de pantalla y las guarda en un bucket de Cloud Storage.
Si el campo screenshot_options.storage_location no está definido o si el valor es una cadena vacía, Monitoring crea un bucket de Cloud Storage y las capturas de pantalla se guardan en ese bucket.
Monitoring usa la siguiente convención para nombrar el bucket de Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
En la expresión anterior, se dan las siguientes situaciones:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la ubicación de tu bucket de Cloud Storage.
REST
El proceso para crear un verificador de vínculos rotos con la API de Cloud Monitoring es idéntico al proceso para crear cualquier otro monitor sintético. Para obtener información sobre cómo usar la API de Cloud Monitoring para crear un monitor sintético, consulta Crea un monitor sintético y selecciona la pestaña REST.
Los verificadores de vínculos rotos usan la plantilla broken-links-ok. La configuración de un verificador de vínculos rotos se especifica con el objeto options del archivo index.js.
Cuando se define la estructura options.screenshot_options, el verificador de vínculos rotos recopila capturas de pantalla y las guarda en un bucket de Cloud Storage.
Si el campo screenshot_options.storage_location no está definido o si el valor es una cadena vacía, Monitoring crea un bucket de Cloud Storage y las capturas de pantalla se guardan en ese bucket.
Monitoring usa la siguiente convención para nombrar el bucket de Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
En la expresión anterior, se dan las siguientes situaciones:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- LOCATION: Es la ubicación de tu bucket de Cloud Storage.
Explora resultados
Para cada ejecución, el verificador de vínculos rotos hace lo siguiente:
Genera una tabla en la que cada fila proporciona información sobre las pruebas de un URI específico. La información del resumen incluye el URI de destino, la latencia, el estado y el identificador del elemento HTML. Por ejemplo, esta columna muestra a cuando se prueba un elemento de anclaje HTML. Cuando la fila corresponde al URI de origen, el valor del identificador del elemento HTML es -.
Recopila métricas, datos de seguimiento y datos de registros.
Recopila capturas de pantalla cuando se configura.
Para obtener más información sobre cómo explorar los datos recopilados, consulta Explora los resultados del monitor sintético.
Solucionar problemas
En esta sección, se proporciona información que puedes usar para solucionar problemas con tus verificadores de vínculos rotos.
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 modificar el tiempo de espera del 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:
-
En la consola de Google Cloud , ve a la página
Supervisión sintética:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto de Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host o el proyecto de administración de App Hub.
- Busca el monitor sintético que deseas editar, haz clic en more_vert Más opciones y, luego, selecciona Editar.
- Haz clic en Editar función.
Edita el objeto
optionsen el archivoindex.jsy, 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.Haz clic en Guardar.
La consola deGoogle Cloud informa que no se pudieron 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:
InvalidStorageLocationStorageValidationErrorBucketCreationErrorScreenshotFileUploadError
Para resolver estos errores, intenta lo siguiente:
Si ves el mensaje
InvalidStorageLocation, verifica la existencia del bucket de Cloud Storage especificado en el campo llamadooptions.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 buckets de Cloud Storage, acceder a ellos y escribir en ellos.
¿Qué sigue?
- Muestras para monitores sintéticos
- Administra monitores sintéticos
- Explora los resultados de los monitores sintéticos