En este documento se describe cómo puedes crear monitores sintéticos para probar la disponibilidad, la coherencia y el rendimiento de tus servicios, aplicaciones, páginas web y APIs. Tú proporcionas las pruebas de tu aplicación. El monitor sintético ejecuta esa secuencia de comandos y registra los resultados de las pruebas y datos adicionales, como la latencia. Para recibir una notificación cuando falle una prueba, puedes configurar una política de alertas para monitorizar los resultados de la prueba.
Esta función solo se admite en proyectos de Google Cloud . En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
Acerca de los monitores sintéticos
Un monitor sintético ejecuta periódicamente una función de Cloud Run de segunda generación de un solo uso que se despliega en Cloud Run. Cuando creas el monitor sintético, defines la función de Cloud Run, que debe estar escrita en Node.js, y la frecuencia de ejecución. Por ejemplo, puedes configurar tu función de Cloud Run para que interactúe con una página web mediante Puppeteer. También puedes configurar tu función de Cloud Run para que interactúe con una API mediante el módulo Axios. También puedes probar los recursos que se encuentran en una red de VPC.
Para crear tu función de Cloud Run, puedes usar un editor insertado o subir un archivo ZIP. Si decides usar el editor insertado, puedes empezar con un 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 función de Cloud Run. Aunque especifiques la región en la que se encuentra tu función de Cloud Run, los comandos que activan la ejecución pueden proceder de cualquier región admitida por los servidores de comprobación del tiempo de actividad. Para obtener más información, consulta Mostrar direcciones IP de servidores de comprobaciones de disponibilidad del servicio.
Puedes crear una política de alertas para recibir una notificación cuando se produzcan errores en las pruebas:
Cuando creas un monitor sintético mediante la Google Cloud consola, el comportamiento predeterminado es crear una política de alertas. Tú proporcionas los canales de notificaciones. La política de alertas predeterminada está configurada para enviarte una notificación cuando se produzcan dos o más fallos consecutivos en las pruebas.
Cuando creas un monitor sintético mediante la API de Cloud Monitoring, debes crear la política de alertas para monitorizar el tipo de métrica
uptime_check/check_passed
del recurso de Cloud Run en el que se ejecuta la función de Cloud Run.
Consideraciones sobre la frecuencia de ejecución
Configuras la frecuencia con la que se ejecuta tu función de Cloud Run. Para determinar la frecuencia de las ejecuciones, ten en cuenta el objetivo de nivel de servicio (SLO) de tu servicio. Para detectar posibles incumplimientos de SLOs, debes ejecutar las pruebas con frecuencia. Sin embargo, el SLO de tu servicio no es el único factor que debes tener en cuenta. También debe tener en cuenta cómo se traduce la tasa de ejecuciones en la carga de su servicio y en sus costes. Cada ejecución supone una carga para tu servicio, por lo que, cuanto más frecuentemente ejecutes tu función de Cloud Run, más carga aplicarás a tu servicio. Como referencia, el intervalo de ejecución predeterminado de las comprobaciones de disponibilidad es de un minuto.
La frecuencia de ejecución también determina la rapidez con la que se te puede notificar cuando se produce un error en la prueba. La monitorización abre un incidente y envía una notificación después del segundo fallo consecutivo de una prueba. Por ejemplo, si la frecuencia de ejecución es de 5 minutos, pueden pasar 10 minutos antes de que haya dos pruebas fallidas. Recibirás una notificación después del segundo intento fallido.
Código de ejemplo de función de Cloud Run
Para ver plantillas y ejemplos, consulta Ejemplos de monitorizaciones sintéticas. Puedes usar estas muestras como punto de partida para tu función de Cloud Run. Si tienes experiencia como desarrollador, te recomendamos que uses Gemini para generar código de monitores sintéticos y, de este modo, reducir el tiempo de desarrollo. La función para generar código con Gemini está en vista previa pública.
La plantilla genérica, que puedes seleccionar cuando creas un monitor sintético mediante la consola Google Cloud , está configurada para recoger datos de trazas y registros de solicitudes HTTP salientes. La solución utiliza el módulo auto-instrumentation-node de OpenTelemetry y el registrador Winston. Debido a la dependencia de los productos de código abierto, es posible que se produzcan cambios en la estructura de los datos de traza y de registro. Por lo tanto, los datos de registro y de seguimiento recogidos solo deben usarse con fines de depuración.
Puedes implementar tu propio método para recoger datos de trazas y registros de solicitudes HTTP salientes. Para ver un ejemplo de enfoque personalizado, consulta la clase SyntheticAutoInstrumentation
.
Configuración de funciones de Cloud Run
Cuando configures tu función de Cloud Run, debes especificar el tiempo de ejecución, la compilación, las conexiones y los ajustes de seguridad, o bien aceptar los ajustes predeterminados:
Es posible que el valor predeterminado de la memoria asignada no sea suficiente. Te recomendamos que asignes a este campo un valor de al menos 2 GiB.
El valor predeterminado de la configuración de transferencia de datos entrantes de tu función de Cloud Run es permitir todo el tráfico. Puedes usar este ajuste o uno más restrictivo.
Si permites todo el tráfico, la primera fase de validación que realizan las funciones de Cloud Run, que se lleva a cabo a nivel de red, siempre se supera. En la segunda fase de validación se determina si se ha concedido permiso al llamante para ejecutar la función de Cloud Run. La autorización depende del rol de Gestión de Identidades y Accesos (IAM) de la persona que llama. De forma predeterminada, Cloud Monitoring tiene permiso para ejecutar tu función de Cloud Run. Para obtener información sobre cómo ver o modificar la configuración de transferencia de datos entrantes, consulta Configuración de entrada.
Restricciones de las funciones de Cloud Run
El nombre de tu función de Cloud Run no debe contener guiones bajos.
Solo puede recoger datos de seguimiento y de registro de solicitudes HTTP salientes cuando utilice la plantilla genérica.
Solo se admiten funciones HTTP. Si usas la consola para crear tu monitor sintético, se te proporcionará una función predeterminada que consulta una URL.Google Cloud El origen de la función predeterminada, que se puede modificar, está disponible en el repositorio de Git
generic-synthetic-nodejs
.Para obtener información sobre las funciones HTTP, consulta Escribir funciones HTTP.
Si usas la API, el comando de implementación debe especificar que la función de Cloud Run es de segunda generación. Si usas la consolaGoogle Cloud , el despliegue se gestiona automáticamente. Para obtener más información, consulta Desplegar una función de Cloud Run.
El entorno de ejecución está restringido a Node.js. Para obtener más información, consulta el artículo Nodo. Se admiten las siguientes versiones de Node.js: 12, 14, 16, 18 y 20.
Datos recogidos por monitores sintéticos
En esta sección se describe qué datos se recogen de tu monitor sintético. Para obtener información sobre cómo ver los resultados de la ejecución, consulta el artículo Explorar los resultados de los monitores sintéticos.
Historial de ejecuciones
Se recoge un historial de los resultados de ejecución de cada monitor sintético. Estos datos incluyen lo siguiente:
Una serie temporal que registra el éxito o el error de las ejecuciones a lo largo del tiempo.
Serie temporal que registra la duración de la ejecución del código. No se registra el tiempo de ejecución de la función. Los datos de latencia se escriben como una serie temporal
uptime_check/request_latency
del recurso de Cloud Run en el que se ejecuta la función de Cloud Run. En la página Detalles del monitor sintético se muestra un gráfico con estos datos.Registros que contienen información sobre las ejecuciones de monitor sintético, como información sobre los detalles de las pruebas y los errores. Los registros disponibles dependen de tu función de Cloud Run. Por ejemplo, si usas la plantilla Mocha, los registros incluyen información sobre si la prueba se ha superado o no y la duración de la prueba. El rastreo de la pila, cuando se incluye, muestra la línea de código que ha fallado, los tipos de error y los mensajes de error.
Opcionalmente, las trazas y los registros de las solicitudes HTTP de salida. Para obtener información sobre cómo recoger estos datos, consulta Latencia de las solicitudes.
Métricas y registros de funciones de Cloud Run
Métricas y registros de tu función de Cloud Run. Estos datos, que recogen las funciones de Cloud Run, incluyen información sobre el número de ejecuciones por segundo, el tiempo de ejecución y el uso de memoria de tu función.
Latencia de solicitudes
Cloud Trace recoge y almacena automáticamente los datos de latencia de la solicitud HTTP realizada por el monitor sintético.
Para recoger datos de trazas, registros y latencia de las solicitudes HTTP salientes realizadas por tu monitor sintético, debes usar la plantilla genérica. Para obtener más información, consulta Ejemplos de monitores sintéticos.
Antes de empezar
Completa los siguientes pasos en el proyecto Google Cloud que almacenará el monitor sintético:
-
Para obtener los permisos que necesitas para ver y modificar monitores sintéticos mediante la Google Cloud consola, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Editor de monitorización (
roles/monitoring.editor
) -
Desarrollador de Cloud Functions (
roles/cloudfunctions.developer
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Editor de monitorización (
-
Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Comprueba que tu Google Cloud proyecto contiene la cuenta de servicio predeterminada de Compute Engine. Esta cuenta de servicio se crea cuando habilitas la API Compute Engine y tiene un nombre similar a
12345-compute@developer.gserviceaccount.com
.En la Google Cloud consola, 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 sea 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.
Asegúrate de que la cuenta de servicio predeterminada de Compute Engine o la cuenta de servicio que has creado tenga asignado el rol Editor (
roles/editor
).Para ver los roles concedidos a tu cuenta de servicio, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Gestión de identidades y accesos:
Ve a Gestión de identidades y accesos.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea IAM y administrador.
- Selecciona Incluir concesiones de roles proporcionadas por Google.
- Si la cuenta de servicio que usa tu monitor sintético no aparece en la lista o no se le ha asignado un rol que incluya los permisos del rol Agente de Cloud Trace (
roles/cloudtrace.agent
), asigna este rol a tu cuenta de servicio.
-
- Configura los canales de notificación que quieras usar para recibir notificaciones. Te recomendamos que crees varios tipos de canales de notificaciones. Para obtener más información, consulta los artículos Crear y gestionar canales de notificación y Crear y gestionar canales de notificación mediante la API.
-
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Crear un monitor sintético
Consola
Cuando creas un monitor sintético mediante la Google Cloud consola, se despliega una nueva función de Cloud Run (2.ª gen.) y se crea el monitor de esa función de Cloud Run. No puedes crear un monitor sintético que monitorice una función de Cloud Run.
- Asegúrate de que has habilitado las APIs necesarias, de que tu proyecto contiene una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le ha asignado el rol Editor (
roles/editor
). Para obtener más información, consulta Antes de empezar. -
En la Google Cloud consola, ve a la página
Monitorización sintética:
Ve a Monitorización sintética.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- Selecciona Crear monitor sintético.
Selecciona la plantilla de tu función de Cloud Run:
Monitor sintético personalizado: usa esta plantilla cuando quieras recoger datos de registro o de seguimiento de solicitudes HTTP salientes.
Monitor sintético de Mocha: usa esta plantilla cuando escribas conjuntos de pruebas de Mocha.
Comprobador de enlaces rotos: usa esta plantilla para probar un URI y un número configurable de enlaces encontrados en ese URI. Para obtener información sobre los campos de este verificador, consulta el artículo Crear un verificador de enlaces rotos.
Introduce un nombre para el monitor.
Opcional: Actualiza el Tiempo de espera de la respuesta y la Frecuencia de comprobación, y añade etiquetas definidas por el usuario.
Elige una de estas opciones:
Si tienes acceso a Gemini Code Assist en este proyecto y quieres que te ayude a escribir el código, haz clic en Ayúdame a programar. Esta función está en Vista Previa Pública. Para obtener instrucciones sobre las peticiones, consulta Información sobre cómo escribir peticiones para monitores sintéticos.
Cuando estés conforme con el código, haz clic en Insertar en Cloud Function.
Haz clic en Crear función.
En el cuadro de diálogo de la función de Cloud Run, haz lo siguiente:
Introduce un nombre visible y selecciona una región. Los nombres deben ser únicos en una región.
En la sección Runtime, build, connections and security settings (Configuración de tiempo de ejecución, compilación, conexiones y seguridad), haga lo siguiente:
Revisa la configuración predeterminada y actualízala cuando sea necesario.
En el campo Cuenta de servicio de tiempo de ejecución, selecciona una cuenta de servicio.
Edita el código generado o escribe o sube código para tu función de Cloud Run:
Para editar el código generado, introducir tu propio código o cargar la función de ejemplo predeterminada, selecciona Editor insertado. La función de ejemplo, que depende de la plantilla que haya seleccionado 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 Subida de ZIP.
Si subes un archivo ZIP desde tu sistema local, también debes especificar un segmento de Cloud Storage para el archivo ZIP. Si no tiene un segmento de Cloud Storage adecuado, cree uno.
Para cargar un archivo ZIP desde Cloud Storage, selecciona ZIP desde Cloud Storage, elige el segmento de almacenamiento y, a continuación, selecciona el archivo ZIP que quieras cargar.
También puedes crear una función de Cloud Run mediante las páginas de funciones de Cloud Run de la Google Cloud consola. Para crear un monitor sintético que monitorice una copia de esa función de Cloud Run, ve a la pestaña Fuente y haz clic en Descargar ZIP. A continuación, puedes subir el archivo ZIP.
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 del fallo antes de que se envíen las notificaciones.
Añade los canales de notificaciones.
Haz clic en Crear.
La función de Cloud Run que has definido se compila y se despliega como de segunda generación, y se crea el monitor sintético.
gcloud
Cuando creas un monitor sintético mediante la CLI de Google Cloud o la API de Cloud Monitoring, pasas el nombre de la función a la llamada a la API. Por lo tanto, solo puedes crear un monitor sintético que monitorice una función de Cloud Run.
- Asegúrate de que has habilitado las APIs necesarias, de que tu proyecto contiene una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le ha asignado el rol Editor (
roles/editor
). Para obtener más información, consulta Antes de empezar. - Configura Google Cloud CLI para definir un proyecto predeterminado con el comando
gcloud config set
:gcloud config set project PROJECT_ID
Antes de ejecutar el comando anterior, sustituya lo siguiente:
- PROJECT_ID: identificador del proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- Escribe y despliega tu función de Cloud Run de 2.ª generación.
Por ejemplo, para implementar la muestra
synthetics-sdk-nodejs
en el repositorioGoogle Cloud/synthetics-sdk-nodejs
, haz lo siguiente: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
Despliega la función de Cloud Run 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 sea único en su región de implementación.
Incluye la marca
--gen2
y define la región de implementación.Defina el campo
--entry-point
de la siguiente manera:- Mocha:
SyntheticMochaSuite
- No es Mocha:
SyntheticFunction
.
- Mocha:
Asigna el valor
nodejs18
al campo--runtime
.Incluye la marca
--trigger-http
.Defina el campo
--ingress-settings
cuando no quiera usar el ajuste predeterminado, que permite todo el tráfico.
Cloud Run Functions compila y, a continuación, despliega tu función de Cloud Run. Los resultados del comando de la CLI de Google Cloud incluyen información sobre la función, como su nombre completo:
name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
Para obtener más información sobre cómo desplegar una función, consulta el artículo Desplegar una función de Cloud Run.
Para enumerar las funciones de Cloud Run de tu proyecto Google Cloud , usa el comando
gcloud functions list
:gcloud functions list
La respuesta de esta llamada es una lista de entradas, en la que cada entrada muestra una función de Cloud Run:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
Para encontrar el nombre completo de una función de Cloud Run específica, ejecuta el comando
gcloud monitoring uptime describe
. 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, sustituya lo siguiente:
- DISPLAY_NAME: el nombre del monitor sintético.
- TARGET: el nombre completo de tu función de Cloud Run.
Crea una política de alertas.
Debido a la complejidad de la configuración de las políticas de alertas, te recomendamos que vayas a la página Monitorizaciones sintéticas de la consola de Google Cloud y uses las opciones para crear una política de alertas. Con este método, la mayoría de los campos de la política de alertas se rellenan automáticamente. Para crear la política de alertas con la consolaGoogle Cloud , haz clic en Crear política en la página Supervisores sintéticos.
Si tienes previsto usar la CLI de Google Cloud o la API 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 monitoriza
uptime_check/check_passed
series temporales que escribe tu monitor sintético. Sustituye CHECK_ID por el identificador del monitor sintético, que se incluye en los datos de respuesta de un comando de creación.Para obtener información sobre cómo crear una política de alertas, consulta el artículo Crear políticas de alertas mediante la API.
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor Terraform.
Para crear un monitor sintético y una política de alertas para monitorizar esa comprobación, haz lo siguiente:
Instala y configura Terraform para tu proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
Asegúrate de que has habilitado las APIs necesarias, de que tu proyecto contiene una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le ha asignado el rol Editor (
roles/editor
). Para obtener más información, consulta Antes de empezar.Edita el archivo de configuración de Terraform y añade un recurso
google_storage_bucket
. A continuación, aplica los cambios.El siguiente código define un segmento 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 }
Edita el archivo de configuración de Terraform y añade un recurso
google_storage_bucket_object
. A continuación, aplica los cambios.El recurso especifica el nombre del objeto en tu segmento y la ubicación del archivo ZIP en tu sistema local. Por ejemplo, cuando apliques el siguiente código, se añadirá a tu segmento de almacenamiento un archivo con el nombre
example-function.zip
:resource "google_storage_bucket_object" "object" { name = "example-function.zip" bucket = google_storage_bucket.gcf_source.name source = "generic-synthetic-node.js.zip" }
Edita el archivo de configuración de Terraform y añade un recurso
google_cloudfunctions2_function
. A continuación, aplica los cambios.Asegúrate de que tu recurso
google_cloudfunctions2_function
especifique un tiempo de ejecución de Node.js y el punto de entrada que usan los monitores sintéticos. Por ejemplo, cuando aplicas el siguiente código, se implementa una función con el nombresm-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 } }
Para crear un monitor sintético, edita el archivo de configuración de Terraform y añade un recurso
google_monitoring_uptime_check_config
. A continuación, aplica los cambios.En 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 } } }
Opcional: Crea un canal de notificaciones y una política de alertas.
En los siguientes pasos se usa la consola para crear el canal de notificaciones y la política de alertas. Google Cloud De esta forma, la política de alertas solo monitoriza los datos generados por tu monitor sintético.
Para crear un canal de notificaciones, sigue estos pasos:
-
En la Google Cloud consola, ve a la página notifications Alertas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Selecciona Gestionar canales de notificaciones.
- Vaya al tipo de canal que quiera añadir, haga clic en Añadir y, a continuación, complete el cuadro de diálogo.
-
Para crear una política de alertas, haz lo siguiente:
-
En la Google Cloud consola, ve a la página
Monitorización sintética:
Ve a Monitorización sintética.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Busca tu monitor sintético, selecciona more_vert Más y, a continuación, Añadir política de alertas.
- En el cuadro de diálogo, ve a la sección Notificaciones y nombre, despliega Canales de notificaciones y haz las selecciones que quieras.
- Ponle un nombre a la política de alertas y haz clic en Crear política.
-
REST
Cuando creas un monitor sintético mediante la CLI de Google Cloud o la API de Cloud Monitoring, pasas el nombre de la función a la llamada a la API. Por lo tanto, solo puedes crear un monitor sintético que monitorice una función de Cloud Run.
- Asegúrate de que has habilitado las APIs necesarias, de que tu proyecto contiene una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le ha asignado el rol Editor (
roles/editor
). Para obtener más información, consulta Antes de empezar. - Configura Google Cloud CLI para definir un proyecto predeterminado con el comando
gcloud config set
:gcloud config set project PROJECT_ID
Antes de ejecutar el comando anterior, sustituya lo siguiente:
- PROJECT_ID: identificador del proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- Escribe y despliega tu función de Cloud Run de 2.ª generación.
Por ejemplo, para implementar la muestra
synthetics-sdk-nodejs
en el repositorioGoogle Cloud/synthetics-sdk-nodejs
, haz lo siguiente: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
Despliega la función de Cloud Run 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 sea único en su región de implementación.
Incluye la marca
--gen2
y define la región de implementación.Defina el campo
--entry-point
de la siguiente manera:- Mocha:
SyntheticMochaSuite
- No es Mocha:
SyntheticFunction
.
- Mocha:
Asigna el valor
nodejs18
al campo--runtime
.Incluye la marca
--trigger-http
.Defina el campo
--ingress-settings
cuando no quiera usar el ajuste predeterminado, que permite todo el tráfico.
Cloud Run Functions compila y, a continuación, despliega tu función de Cloud Run. Los resultados del comando de la CLI de Google Cloud incluyen información sobre la función, como su nombre completo:
name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
Para obtener más información sobre cómo desplegar una función, consulta el artículo Desplegar una función de Cloud Run.
Para enumerar las funciones de Cloud Run de tu proyecto Google Cloud , usa el comando
gcloud functions list
:gcloud functions list
La respuesta de esta llamada es una lista de entradas, en la que cada entrada muestra una función de Cloud Run:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
Para encontrar el nombre completo de una función de Cloud Run específica, ejecuta el comando
gcloud monitoring uptime describe
. Para crear un monitor sintético, sigue estos pasos:
- Haz clic en
projects.uptimeCheckConfigs.create
para abrir la página de referencia de la API del método. - Haz clic en Probar para abrir el Explorador de APIs.
Define los siguientes campos y, a continuación, ejecuta el comando.
Campo principal: proyecto en el que se creará el monitor sintético. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones. Este campo tiene el siguiente formato:
projects/PROJECT_ID
En el cuerpo de la solicitud, especifica lo siguiente:
displayName
: se asigna al nombre visible del monitor sintético.syntheticMonitor
: se asigna al nombre completo de tu función de Cloud Run.
Si la llamada se realiza correctamente, la respuesta de la API será 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" } } } } }
- Haz clic en
Crea una política de alertas.
Debido a la complejidad de la configuración de las políticas de alertas, te recomendamos que vayas a la página Monitorizaciones sintéticas de la consola de Google Cloud y uses las opciones para crear una política de alertas. Con este método, la mayoría de los campos de la política de alertas se rellenan automáticamente. Para crear la política de alertas con la consolaGoogle Cloud , haz clic en Crear política en la página Supervisores sintéticos.
Si tienes previsto usar la CLI de Google Cloud o la API 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 monitoriza
uptime_check/check_passed
series temporales que escribe tu monitor sintético. Sustituye CHECK_ID por el identificador del monitor sintético, que se incluye en los datos de respuesta de un comando de creación.Para obtener información sobre cómo crear una política de alertas, consulta el artículo Crear políticas de alertas mediante la API.
Precios
Por lo general, las métricas del sistema de Cloud Monitoring son gratuitas, mientras que las métricas de sistemas, agentes o aplicaciones externos no lo son. Las métricas facturables se facturan según el número de bytes o el número de muestras ingeridas.
Para obtener más información, consulta las secciones de Cloud Monitoring de la página Precios de Google Cloud Observability.
Solucionar problemas de monitores sintéticos
En esta sección se proporciona información que puede ayudarte a solucionar problemas con 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 pide que habilites al menos una API. Después de habilitar las APIs, se mostrará 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.
En el mensaje de error se recomienda que verifiques que la API esté habilitada y, a continuación, que esperes y vuelvas a intentar realizar la acción.
Para comprobar que la API esté habilitada, vaya a la página APIs y servicios de su proyecto:
Una vez que hayas verificado 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 propague por el backend.
No se está haciendo un seguimiento de las solicitudes HTTP salientes
Configura tu monitor sintético para recoger datos de traza de las solicitudes HTTP de salida. Los datos de la traza solo muestran un intervalo, como se ve en la siguiente captura de pantalla:
Para resolver esta situación, asegúrate de que se haya concedido a tu cuenta de servicio el rol de agente de Cloud Trace (
roles/cloudtrace.agent
). También es suficiente con el rol Editor (roles/editor
).Para ver los roles concedidos a tu cuenta de servicio, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Gestión de identidades y accesos:
Ve a Gestión de identidades y accesos.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea IAM y administrador.
- En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- Selecciona Incluir concesiones de roles proporcionadas por Google.
Si la cuenta de servicio que usa tu monitor sintético no aparece en la lista o no tiene asignado un rol que incluya los permisos del rol Agente de Cloud Trace (
roles/cloudtrace.agent
), asigna este rol a tu cuenta de servicio.Si no sabes el nombre de tu cuenta de servicio, en el menú de navegación, selecciona Cuentas de servicio.
Estado En curso
En la página Monitores sintéticos se muestra un monitor sintético con el estado
In progress
. El estadoIn progress
significa que el monitor sintético se ha creado recientemente y no hay datos que mostrar o que no se ha podido implementar la función.Para determinar si la función no se ha desplegado, prueba 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 desplegar la función de Cloud Run.
Abre la página Detalles del monitor sintético del monitor sintético.
Si ves el siguiente mensaje, elimina 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 la función se ha eliminado y, por lo tanto, el monitor sintético no puede ejecutarla.
Abre la página de Cloud Run Functions de la función. Para abrir esta página desde la página Detalles del monitor sintético, haz clic en Código y, a continuación, en el nombre de la función.
Si ves un mensaje similar al siguiente, significa que no se ha podido implementar la función.
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 se compile o se implemente.
Cuando creas un monitor sintético, la función puede tardar varios minutos en desplegarse y ejecutarse.
Estado de la advertencia
En Monitores sintéticos se muestra un monitor sintético con el estado
Warning
. El estadoWarning
significa que los resultados de la ejecución no son coherentes. Esto podría indicar que hay un problema de diseño en la prueba o que el elemento que se está probando tiene un comportamiento incoherente.Estado de error
En la lista Monitores sintéticos se muestra un monitor sintético con el estado
Failing
. Para obtener más información sobre el motivo del fallo, consulta el historial de ejecuciones más reciente.Si se muestra el mensaje de error
Request failed with status code 429
, significa que el destino de la solicitud HTTP ha rechazado el comando. Para solucionar este error, debe cambiar el destino de su monitor sintético.El endpoint
https://www.google.com
rechaza las solicitudes realizadas por monitores sintéticos.Si el error devuelve un tiempo de ejecución de
0ms
, es posible que la función de Cloud Run se quede sin memoria. Para solucionar este error, edita tu función de Cloud Run y aumenta la memoria a al menos 2 GiB. Después, asigna el valor1
al campo de CPU.
Falla al eliminar un monitor sintético
Usas la API Cloud Monitoring para eliminar un monitor sintético, pero la llamada a la API falla y devuelve 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 problema, elimine las políticas de alertas que monitorizan los resultados del monitor sintético y, a continuación, elimine el monitor sintético.
Siguientes pasos
- Ejemplos de monitores sintéticos
- Gestionar monitores sintéticos
- Consultar los resultados de los monitores sintéticos
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-22 (UTC).
- Asegúrate de que has habilitado las APIs necesarias, de que tu proyecto contiene una cuenta de servicio predeterminada de Compute Engine y de que a esta cuenta se le ha asignado el rol Editor (