Crea un monitor sintético

En este documento, se describe cómo puedes crear monitores sintéticos para probar el la disponibilidad, coherencia y rendimiento de los servicios, las aplicaciones páginas web y APIs. Tú proporcionas pruebas para tu aplicación. El monitor sintético ejecuta esa secuencia de comandos y registra los resultados de las pruebas. datos adicionales, como la latencia. Para recibir una notificación cuando si una prueba falla, puedes configurar una política de alertas para supervisar los resultados de las pruebas.

Información acerca de los monitores sintéticos

Un monitor sintético ejecuta de manera periódica un solo propósito Cloud Function de 2a gen. que se implementa en Cloud Run. Cuando creas el monitor sintético, defines la Cloud Function, que debe escribirse en Node.js, y la frecuencia de ejecución. Por ejemplo, puedes configurar tu Cloud Function para que interactúe con una página web mediante Puppeteer. También puedes configurar tu Cloud Function para que interactúe con una API a través del Axios. Puede que también quieras para probar recursos dentro de una red de VPC.

Para crear tu Cloud Function, puedes usar un editor directo o subir un archivo ZIP. Si eliges usa el editor directo y, luego, puedes comenzar con el esqueleto proporcionado. Después de crear un monitor sintético, Cloud Monitoring usa un sistema de programación que programa la ejecución periódica de tu Cloud Function. Mientras que especifica la región en la que existe tu Cloud Function, los comandos que la ejecución puede originarse en cualquier región que admita la de verificaciones de tiempo de actividad. Para obtener más información, consulta Enumera las direcciones IP de los servidores de verificación de tiempo de actividad.

Puedes crear una política de alertas para recibir notificaciones pruebas fallidas:

  • Cuando creas un monitor sintético con la consola de Google Cloud, el comportamiento predeterminado es crear una política de alertas. Debes proporcionar el canales de notificaciones. La política de alertas predeterminada está configurada para te notificarán cuando haya dos o más pruebas fallidas consecutivas.

  • Cuando creas un monitor sintético con la API de Cloud Monitoring, debes crear una política de alertas para supervisar Tipo de métrica uptime_check/check_passed para el recurso de Cloud Run al que está en ejecución.

Consideraciones de la frecuencia de ejecución

Configura la frecuencia con la que se ejecuta tu Cloud Function. Para determinar la frecuencia de las ejecuciones, tener en cuenta la objetivo de nivel de servicio (SLO) para tu servicio. Para detectar posibles incumplimientos del SLO, debes ejecutar las pruebas con frecuencia. Sin embargo, el SLO para tu servicio no es la única consideración. También debe considerar cómo la tasa de ejecuciones se traduce en carga tu servicio y tus costos. Cada ejecución proporciona carga a tu servicio, así que, cuanto más seguido ejecutes tu Cloud Function, mayor será la carga que apliques a tu servicio. Como referencia, el intervalo de ejecución predeterminado para las verificaciones de tiempo de actividad es de un minuto.

La frecuencia de ejecución también determina la rapidez con la que puedes recibir notificaciones cuando si falla la prueba. Monitoring abre un incidente y envía una notificación después de la segunda falla consecutiva de una prueba. Por ejemplo: si tu frecuencia de ejecución es de 5 minutos, puede tardar 10 minutos hay dos pruebas fallidas. Recibirás una notificación después de la segunda prueba fallida.

Código de muestra de Cloud Function

Para obtener plantillas y muestras, consulta Muestras para monitores sintéticos. Puedes usar estas muestras como punto de partida para tu de Cloud Function. Si eres un desarrollador experimentado, luego considera usar Gemini para generar código para monitores sintéticos y así reducir el tiempo de desarrollo. El uso de Gemini para generar código está en versión preliminar pública.

La plantilla genérica, que puedes seleccionar cuando creas un monitor sintético con la consola de Google Cloud está configurado para recopilar datos de seguimiento y registro de las solicitudes HTTP salientes. La solución aprovecha la Módulo auto-instrumentation-node de OpenTelemetry y el registrador de winston. Debido a la dependencia de los productos de código abierto, habrá cambios en la estructura de los datos de seguimiento y de registro. Por lo tanto, el seguimiento y los datos de registro solo se deben usar con fines de depuración.

Puedes implementar tu propio enfoque para recopilar datos de registro y seguimiento para llamadas salientes. de las solicitudes HTTP. En un ejemplo de enfoque personalizado, consulta la clase SyntheticAutoInstrumentation.

Configuración de Cloud Function

Cuando configures tu Cloud Function, debes especificar la configuración del entorno de ejecución, la compilación, las conexiones y la seguridad, o aceptar la configuración configuración:

  • Es posible que el valor predeterminado para la memoria asignada no sea suficiente. Mié se recomienda configurar este campo para que sea de al menos 2 GiB.

  • Es el valor predeterminado de la configuración de transferencia de datos entrante de tu Cloud Function permite todo el tráfico. Puedes usar este parámetro de configuración o una configuración más restrictiva.

    Cuando permites todo el tráfico, se abrirá la primera fase de validación que realiza Cloud Functions, que se realiza a nivel de la red, siempre pases. La segunda fase de validación determina si el llamador tenga permiso para ejecutar la Cloud Function. La autorización depende del nombre de usuario rol de Identity and Access Management (IAM). De forma predeterminada, Cloud Monitoring tiene permiso para ejecutar tu de Cloud Function. Para obtener información sobre cómo ver o modificar el configuración de transferencia de datos entrante, consulta Configuración de entrada.

Restricciones de Cloud Function

  • El nombre de tu Cloud Function no debe incluir un guion bajo.

  • Puedes recopilar datos de seguimiento y registro para las solicitudes HTTP salientes solo cuando usar la plantilla genérica.

  • Solo se admiten las funciones de HTTP. Si usas la consola de Google Cloud para crear tu monitor sintético, luego se te proporcionará una función predeterminada que consulta una URL. La fuente de la función predeterminada, que se puede modificar, está disponible generic-synthetic-nodejs Repositorio de Git.

    Para obtener información sobre las funciones de HTTP, consulta Cómo escribir funciones de HTTP.

  • Si usas la API, el comando de implementación debe especificar que el Cloud Function es de 2a generación. Si usas la consola de Google Cloud, y la implementación se hará por ti. Para ver más consulta Implementa una Cloud Function.

  • El entorno de ejecución está restringido a Node.js. Para obtener información, consulta Nodo. Las siguientes versiones de Node.js se admiten las siguientes: 12, 14, 16, 18 y 20.

Datos recopilados por supervisores sintéticos

En esta sección, se describen los datos que se recopilan para el monitor sintético. Si quieres obtener información para ver los resultados de la ejecución, consulta Explora los resultados del monitor sintético.

Historial de ejecuciones

Para cada monitor sintético, se recopila un historial de resultados de ejecución. Entre estos datos, se incluyen los siguientes:

  • Una serie temporal que registra el éxito o el fracaso de ejecuciones a lo largo del tiempo.

  • Una serie temporal que registra la duración de la ejecución del código. El el tiempo de ejecución de la función no se registra. Los datos de latencia se escriben como una serie temporal de uptime_check/request_latency para el recurso de Cloud Run que está en ejecución. Hay un gráfico de estos datos en la Página de detalles del monitor sintético.

  • Los registros que contienen información sobre ejecuciones de supervisión sintético, como información sobre el los detalles de las pruebas y los errores. Los registros disponibles dependen de tu de Cloud Function. Por ejemplo, si usas la plantilla Mocha, los registros incluyen información sobre si la prueba fue aprobada o no, y la prueba y el tiempo de actividad. El seguimiento de pila, cuando se incluye, enumera la línea de código que “Falló”, los tipos y los mensajes de error.

  • Seguimientos y registros de solicitudes HTTP salientes (opcional). Información para obtener información sobre cómo recopilar estos datos, consulta Latencia de las solicitudes.

Métricas y registros de Cloud Function

Métricas y registros para tu Cloud Function. Estos datos, que son que recopila Cloud Functions, incluye información sobre la cantidad por segundo, el tiempo de ejecución y el uso de memoria tu función.

Latencia de la solicitud

Los datos de latencia para la solicitud HTTP que realiza el monitor sintético se que recopila y almacena Cloud Trace.

Para recopilar datos de seguimiento, registro y latencia para las solicitudes HTTP salientes realizadas por tu monitor sintético, debes usar el plantilla genérica. Para obtener más información, consulta Muestras para monitores sintéticos.

Antes de comenzar

  1. A fin de obtener los permisos que necesitas para ver y modificar monitores sintéticos con la consola de Google Cloud, solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto:

    Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

  2. Habilita las API de Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Habilita las API

  3. Verifica que tu proyecto de Google Cloud contenga la instancia predeterminada de Compute Engine cuenta de servicio. Esta cuenta de servicio se crea cuando habilitas el API de Compute Engine y tiene un nombre similar al 12345-compute@developer.gserviceaccount.com.

    En la consola de Google Cloud, ve a la página Cuentas de servicio:

    Ir a 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 la cuenta de servicio predeterminada de Compute Engine no existe, haz clic en Crear cuenta de servicio y completa el cuadro de diálogo.

  4. Asegúrate de que la cuenta de servicio predeterminada de Compute Engine o cuenta de servicio que creaste, se a los que se les otorgó 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 el monitor sintético no aparece en la lista o si No se le otorgó un rol que incluya permisos en el rol del agente de Cloud Trace (roles/cloudtrace.agent) y, luego, otorga este rol tu cuenta de servicio.
  5. Configura los canales de notificaciones que deseas usar para recibir notificaciones. Te recomendamos crear varios tipos de notificaciones canales. Para obtener más información, consulta Crear y administrar canales de notificaciones y Crea y administra canales de notificaciones por API.

Crea un monitor sintético

Console

Cuando creas un monitor sintético con la consola de Google Cloud, se crea Cloud Function (2ª gen..) y se crea el supervisor de esa Cloud Function. No puedes crear un monitor sintético que supervise un una Cloud Function existente.

  1. Asegúrate de haber habilitado los las APIs requeridas que contiene tu proyecto una cuenta de servicio predeterminada de Compute Engine tener el rol de editor (roles/editor). Para obtener más información, consulta Antes de comenzar.
  2. En la consola de Google Cloud, ve a  Supervisión sintética:

    Ir 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.

  3. Selecciona Crear monitor sintético.
  4. Selecciona la plantilla para tu Cloud Function:

    • Monitor sintético personalizado: Usa esta plantilla cuando quieras recopilar datos. de registro o de seguimiento para solicitudes HTTP salientes.

    • Monitor sintético de Mocha: Usa esta plantilla cuando escribas Paquetes de pruebas Moca

    • Verificador de vínculos rotos: Usa esta plantilla para probar un URI. y una cantidad configurable de vínculos que se encuentran en ese URI. Información sobre los campos de este verificador, consulta Crea un verificador de vínculos rotos.

  5. Ingresa un nombre para el monitor.

  6. Actualiza el Tiempo de espera de respuesta, la Frecuencia de verificación (opcional) y agregar etiquetas definidas por el usuario.

  7. Realiza una de las siguientes acciones:

  8. En el diálogo de Cloud Function, haz lo siguiente:

    1. Ingresa un nombre visible y selecciona una región. Los nombres deben ser únicos en cada región.

    2. En la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad, haz lo siguiente: haz lo siguiente:

      • Revisa la configuración predeterminada y actualízala cuando sea necesario.

      • En el campo Cuenta de servicio del entorno de ejecución, selecciona una cuenta de servicio.

    3. Edita el código generado o escribe o sube un código para tu Cloud Function:

      • Para editar el código generado, ingresa tu propio código o carga la función predeterminada de muestra, Selecciona Editor intercalado. La función de muestra, que es dependiente en la plantilla que seleccionaste anteriormente, envía una solicitud a una URL específica. Puedes modificar la función predeterminada.

      • Para cargar un archivo ZIP desde tu sistema local, selecciona Carga de ZIP.

        Si subes un archivo ZIP desde tu sistema local, debes especifica un bucket de Cloud Storage para el archivo ZIP. Si pero no tienes un bucket de Cloud Storage apropiado, crea uno.

      • Para cargar un archivo ZIP desde Cloud Storage, selecciona ZIP de Cloud Storage, selecciona el bucket de almacenamiento y, luego, selecciona el archivo ZIP que deseas cargar.

        También puedes crear una Cloud Function con el Las páginas de Cloud Functions en la consola de Google Cloud Para crear un monitor sintético que supervisa una copia de esa Cloud Function, ve a la pestaña Origen y Haz clic en Descargar ZIP. Luego, puedes subir el archivo ZIP.

    4. Haz clic en Aplicar función.

  9. Configura la política de alertas:

    1. 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.

    2. Agrega los canales de notificación.

  10. Haz clic en Crear.

    La Cloud Function que definiste se compila e implementa como y se crea el monitor sintético.

gcloud

Cuando creas un monitor sintético con Google Cloud CLI o la API de Cloud Monitoring, debes pasar el nombre de la función a la llamada a la API. Por lo tanto, solo puedes crear un monitor sintético que supervisa una Cloud Function existente.

  1. Asegúrate de haber habilitado los las APIs requeridas que contiene tu proyecto una cuenta de servicio predeterminada de Compute Engine tener el rol de editor (roles/editor). Para obtener más información, consulta Antes de comenzar.
  2. Escribe e implementa la 2ª gen.. de Cloud Function.

    Por ejemplo, para implementar la muestra synthetics-sdk-nodejs en la Google Cloud/synthetics-sdk-nodejs, haz lo siguiente:

    1. Clona el repositorio y ve a la ubicación del código fuente:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Implementa la Cloud Function con el Comando gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      En el comando gcloud functions deploy, haz lo siguiente:

      • Asegúrate de que el valor del campo FUNCTION_NAME es única en su región de implementación.

      • Incluye la marca --gen2 y configura la región de implementación.

      • Configura el campo --entry-point de la siguiente manera:

        • Moca: SyntheticMochaSuite
        • Sin moca: SyntheticFunction.
      • Configura el campo --runtime como nodejs18.

      • Incluye la marca --trigger-http.

      • Configura el campo --ingress-settings cuando no quieras usar el valor predeterminado que permite todo el tráfico.

      Cloud Functions compila y, luego, implementa tu Cloud Function. Los resultados del comando de Google Cloud CLI incluyen información sobre el función, incluido su nombre completamente calificado:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Para obtener más información sobre la implementación de una función, consulta Implementa una Cloud Function.

    Para enumerar las funciones de Cloud Functions en tu proyecto de Google Cloud, usa el Comando gcloud functions list:

    gcloud functions list
    

    La respuesta de esta llamada es una lista de entradas, cada entrada enumera un Cloud Function:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Para encontrar el nombre completamente calificado de una Cloud Function específica, sigue estos pasos: Ejecuta el comando gcloud monitoring uptime describe.

  3. Para crear el monitor sintético, ejecuta el Comando gcloud monitoring uptime create:

    gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
    

    Antes de ejecutar el comando anterior, haz lo siguiente:

    • Reemplaza DISPLAY_NAME por el nombre de tu monitor sintético.
    • Reemplaza TARGET por el nombre completamente calificado de tu de Cloud Function.
  4. Crea una política de alertas.

    Debido a la complejidad de la política de alertas, de la aplicación, te recomendamos que consultes la página de Monitores sintéticos en la consola de Google Cloud y usarás las opciones para crear una política de alertas. Con este enfoque, la mayoría de los campos de políticas de alertas completado por ti. Para crear la política de alertas con el En la consola de Google Cloud, haz clic en Crear política Página de supervisores sintéticos.

    Si planeas usar Google Cloud CLI o la API de Cloud Monitoring, configura el filtro de la condición de la siguiente manera:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    La condición supervisa Series temporales de uptime_check/check_passed escritas el monitor sintético. Asegúrate de reemplazar CHECK_ID con el identificador del monitor sintético, y que se incluye en los datos de respuesta de un create.

    Para obtener información sobre cómo crear una política de alertas, consulta Crea políticas de alertas mediante la API.

API

Cuando creas un monitor sintético con Google Cloud CLI o la API de Cloud Monitoring, debes pasar el nombre de la función a la llamada a la API. Por lo tanto, solo puedes crear un monitor sintético que supervisa una Cloud Function existente.

  1. Asegúrate de haber habilitado los las APIs requeridas que contiene tu proyecto una cuenta de servicio predeterminada de Compute Engine tener el rol de editor (roles/editor). Para obtener más información, consulta Antes de comenzar.
  2. Escribe e implementa la 2ª gen.. de Cloud Function.

    Por ejemplo, para implementar la muestra synthetics-sdk-nodejs en la Google Cloud/synthetics-sdk-nodejs, haz lo siguiente:

    1. Clona el repositorio y ve a la ubicación del código fuente:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Implementa la Cloud Function con el Comando gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      En el comando gcloud functions deploy, haz lo siguiente:

      • Asegúrate de que el valor del campo FUNCTION_NAME es única en su región de implementación.

      • Incluye la marca --gen2 y configura la región de implementación.

      • Configura el campo --entry-point de la siguiente manera:

        • Moca: SyntheticMochaSuite
        • Sin moca: SyntheticFunction.
      • Configura el campo --runtime como nodejs18.

      • Incluye la marca --trigger-http.

      • Configura el campo --ingress-settings cuando no quieras usar el valor predeterminado que permite todo el tráfico.

      Cloud Functions compila y, luego, implementa tu Cloud Function. Los resultados del comando de Google Cloud CLI incluyen información sobre el función, incluido su nombre completamente calificado:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Para obtener más información sobre la implementación de una función, consulta Implementa una Cloud Function.

    Para enumerar las funciones de Cloud Functions en tu proyecto de Google Cloud, usa el Comando gcloud functions list:

    gcloud functions list
    

    La respuesta de esta llamada es una lista de entradas, cada entrada enumera un Cloud Function:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Para encontrar el nombre completamente calificado de una Cloud Function específica, sigue estos pasos: Ejecuta el comando gcloud monitoring uptime describe.

  3. Para crear un monitor sintético, haz lo siguiente:

    1. Haz clic en projects.uptimeCheckConfigs.create. para abrir la página de referencia de la API del método.
    2. Haz clic en Probar para abrir el Explorador de APIs.
    3. Configura los siguientes campos y, luego, ejecuta el comando.

      • Campo superior: projects/PROJECT_ID.
      • Especifica lo siguiente en el cuerpo de la solicitud:

        • displayName: Se establece como el nombre visible del monitor sintético.
        • syntheticMonitor: Se establece como el nombre completamente calificado de tu de Cloud Function.

      Si se realiza de forma correcta, la respuesta de la llamada a la API es similar a la siguiente:

      {
      "name": "projects/myproject/uptimeCheckConfigs/17272586127463315332",
      "displayName": "MyMonitor",
      ...
      "syntheticMonitor": {
       "cloudFunctionV2": {
          "name": "projects/myproject/locations/us-west2/functions/function-1",
          "cloudRunRevision": {
          "type": "cloud_run_revision",
          "labels": {
             "project_id": "myproject",
             "configuration_name": "",
             "location": "us-west2",
             "revision_name": "",
             "service_name": "function-1"
          }
          }
       }
      }
      }
      
  4. Crea una política de alertas.

    Debido a la complejidad de la política de alertas, de la aplicación, te recomendamos que consultes la página de Monitores sintéticos en la consola de Google Cloud y usarás las opciones para crear una política de alertas. Con este enfoque, la mayoría de los campos de políticas de alertas completado por ti. Para crear la política de alertas con el En la consola de Google Cloud, haz clic en Crear política Página de supervisores sintéticos.

    Si planeas usar Google Cloud CLI o la API de Cloud Monitoring, configura el filtro de la condición de la siguiente manera:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    La condición supervisa Series temporales de uptime_check/check_passed escritas el monitor sintético. Asegúrate de reemplazar CHECK_ID con el identificador del monitor sintético, y que se incluye en los datos de respuesta de un create.

    Para obtener información sobre cómo crear una política de alertas, consulta Crea políticas de alertas mediante la API.

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor de Terraform.

Para crear un monitor sintético y una política de alertas para supervisar esa verificación, haz lo siguiente:

  1. Asegúrate de haber habilitado los las APIs requeridas que contiene tu proyecto una cuenta de servicio predeterminada de Compute Engine tener el rol de editor (roles/editor). Para obtener más información, consulta Antes de comenzar.

  2. Edita tu archivo de configuración de Terraform y agrega una recurso google_storage_bucket y, luego, aplicar los cambios.

    El siguiente código define un bucket de Cloud Storage en la ubicación US:

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Edita tu archivo de configuración de Terraform y agrega una google_storage_bucket_object recurso y, luego, aplicar los cambios.

    El recurso especifica el nombre del objeto en el bucket y la ubicación del archivo ZIP en tu sistema local. Por ejemplo, cuando aplicas el siguiente código, se crea un archivo con el nombre example-function.zip se agrega a tu bucket de almacenamiento:

    resource "google_storage_bucket_object" "object" {
       name = "example-function.zip"
       bucket = google_storage_bucket.gcf_source.name
       source = "generic-synthetic-node.js.zip"
    }
    
  4. Edita tu archivo de configuración de Terraform y agrega una google_cloudfunctions2_function recurso y, luego, aplicar los cambios.

    Asegúrate de que tu recurso google_cloudfunctions2_function especifique un entorno de ejecución de Node.js y el punto de entrada que usan los supervisores sintéticos. Por ejemplo, cuando aplicas el siguiente código, se crea una función con el nombre Se implementó sm-central1:

    resource "google_cloudfunctions2_function" "central1" {
       name = "sm-central1"
       location = "us-central1"
    
       build_config {
          runtime = "nodejs20"
          entry_point = "SyntheticFunction"
          source {
                storage_source {
                   bucket = google_storage_bucket.gcf_source.name
                   object = google_storage_bucket_object.object.name
                }
          }
       }
    
       service_config {
          max_instance_count = 1
          available_memory = "256Mi"
          timeout_seconds  = 60
       }
    }
    
  5. Para crear un monitor sintético, edita tu archivo de configuración de Terraform y agrega una google_monitoring_uptime_check_config recurso y, luego, aplicar los cambios.

    Para este recurso, especifica el bloque synthetic_monitor:

    resource "google_monitoring_uptime_check_config" "synthetic" {
       display_name = "sm-central1"
       timeout = "30s"
    
       synthetic_monitor {
          cloud_function_v2 {
                name = google_cloudfunctions2_function.central1.id
          }
       }
    }
    
  6. Opcional: Crea un canal de notificaciones y una política de alertas.

    En los siguientes pasos, se usa la consola de Google Cloud para crear la notificación y la política de alertas. Este enfoque garantiza que la política de alertas solo supervisa los datos que genera tu monitor sintético.

    1. Para crear un canal de notificaciones, 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. Selecciona Administrar canales de notificaciones.
      3. Ve al tipo de canal que quieres agregar, haz clic en Agregar y y, luego, completarás el cuadro de diálogo.
    2. Para crear una política de alertas, sigue estos pasos:

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

        Ir 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. Ubica tu monitor sintético y selecciona Más. y, luego, selecciona Agregar política de alertas.
      3. En el cuadro de diálogo, ve a la sección Notificaciones y nombre. Expande Canales de notificaciones y realiza tus selecciones.
      4. Asigna un nombre a la política de alertas y, luego, haz clic en Crear política.

Precios

En general, las métricas del sistema de Cloud Monitoring son gratuitas, y las métricas de sistemas, agentes o aplicaciones externos. Las métricas facturables son según la cantidad de bytes o de muestras transferidas.

Para obtener más información sobre los precios de Cloud Monitoring, consulta los siguientes documentos:

Soluciona problemas de monitores sintéticos

En esta sección, se proporciona información que puedes usar para solucionar problemas 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 lo habilites al menos una API. Después de habilitar las APIs, aparecerá un mensaje similar al siguiente se muestra:

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 verificar que la API esté habilitada y, luego, te avisa que debes esperar y volver a realizar la acción.

Para verificar que la API esté habilitada, dirígete a la página APIs y de Google Cloud para tu proyecto:

Ir a API y servicios.

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

No se hace un seguimiento de las solicitudes HTTP de salida

Configura tu monitor sintético para recopilar datos de seguimiento para los resultados de las solicitudes HTTP. Los datos de seguimiento solo muestran un intervalo, similar al siguiente. captura de pantalla:

Se muestra un solo seguimiento en Cloud Trace.

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

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 el monitor sintético no aparece en la lista o si no se le otorgó un rol que incluya los permisos en el rol de Agente de Cloud Trace (roles/cloudtrace.agent) y, luego, otorga este rol a tu cuenta de servicio.

    Si desconoces el nombre de tu cuenta de servicio, en la barra de navegación selecciona Cuentas de servicio.

Estado En curso

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

Para determinar si la función no se pudo implementar, prueba lo siguiente:

  • Asegúrate de que el nombre de tu Cloud Function contener un guion bajo. Si hay un guion bajo, quítalo y vuelve a implementar la Cloud Function.

  • Abre la página Detalles 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 ejecutar la función.

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

    Si ves un mensaje similar al siguiente, significa que la función falló. para implementarlo.

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

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

Cuando creas un monitor sintético, el proceso puede tardar varios minutos función que se implementará y ejecutará.

Estado de advertencia

La sección Monitores sintéticos muestra una lista de monitores sintéticos con un estado de Warning. Un estado de Warning significa que la ejecución los resultados son incoherentes. Esto podría indicar que hay un problema de diseño en tu prueba o podría indicar que el contenido que se está probando tiene un comportamiento incoherente.

Estado de error

La sección Monitores sintéticos muestra una lista de monitores sintéticos con el estado de Failing. Para obtener más información sobre el motivo de la falla, ver el historial de ejecución más reciente.

  • Si se muestra el mensaje de error Request failed with status code 429, entonces el destino de la solicitud HTTP rechazó el comando. Para solucionar este problema, sigue estos pasos: debes cambiar el destino del monitor sintético.

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

  • Si la falla devuelve un tiempo de ejecución de 0ms, el tiempo de ejecución Es posible que la Cloud Function se esté quedando sin memoria. Para solucionar este problema, sigue estos pasos: falla, edita tu Cloud Function y aumenta la memoria en al menos 2 GiB y establece el campo de CPU en 1.

Borrar falla en un monitor sintético

Se usa la API de Cloud Monitoring para borrar un monitor sintético, pero la llamada 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 supervisar los resultados del monitor sintético y, luego, borrarlo.

¿Qué sigue?