1. Introducción
Última actualización: 28/07/2023
¿Qué es Google Cloud Operations Suite?
Google Cloud Operations Suite es una plataforma en la que puedes supervisar, solucionar problemas y mejorar el rendimiento de las aplicaciones en tu entorno de Google Cloud. Los pilares clave de Cloud Operations Suite incluyen Cloud Monitoring, Cloud Logging y Cloud Trace.
Mira este video para obtener una descripción general de alto nivel de Google Cloud Operations.
Qué compilarás
En este codelab, implementarás una API de ejemplo en Google Cloud. Luego, explorarás y configurarás varias funciones en Cloud Monitoring en relación con la API.
Qué aprenderás
- Uso de Cloud Shell de Google Cloud para implementar una aplicación de ejemplo en Cloud Run
- Uso de las funciones de Google Cloud Monitoring, como paneles, alertas, verificaciones de tiempo de actividad, supervisión de SLI/SLO y mucho más
Requisitos
- Una versión reciente de Chrome (74 o posterior)
- Una cuenta de Google Cloud y un proyecto de Google Cloud
2. Configuración y requisitos
Configuración del entorno de autoaprendizaje
Si aún no tienes una Cuenta de Google (Gmail o Google Apps), debes crear una. Accede a Google Cloud Platform Console (console.cloud.google.com) y crea un proyecto nuevo.
- El nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla en cualquier momento.
- El ID del proyecto debe ser único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa qué es. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (por lo general, se identifica como PROJECT_ID). Si no te gusta el ID generado, puedes generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se mantendrá durante todo el proyecto.
- Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
Precaución: El ID de un proyecto debe ser único a nivel global y no lo puede usar nadie más después de haberlo seleccionado. Eres el único usuario de ese ID. Incluso si se borra un proyecto, no se puede volver a usar el ID.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no debería costar mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar todo el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.
Configuración de Google Cloud Shell
Si bien Google Cloud y Google Cloud Trace se pueden operar de manera remota desde tu laptop, en este codelab usaremos Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
Para activar Cloud Shell desde la consola de Cloud, solo haz clic en Activar Cloud Shell (el aprovisionamiento y la conexión al entorno deberían llevar solo unos minutos).
Si nunca iniciaste Cloud Shell, aparecerá una pantalla intermedia (mitad inferior de la página) que describe en qué consiste. Si ese es el caso, haz clic en Continuar (y no volverás a verla). Así es como se ve la pantalla única:
El aprovisionamiento y la conexión a Cloud Shell solo tomará unos minutos.
Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Gran parte de tu trabajo en este codelab, si no todo, se puede hacer simplemente con un navegador o tu Chromebook.
Una vez conectado a Cloud Shell, debería ver que ya se autenticó y que el proyecto ya se configuró con tu ID del proyecto.
En Cloud Shell, ejecuta el siguiente comando para confirmar que tienes la autenticación:
Una vez conectado a Cloud Shell, debería ver que ya se autenticó y que el proyecto ya se configuró con tu PROJECT_ID
:
gcloud auth list
Resultado del comando
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Resultado del comando
[core] project = <PROJECT_ID>
Si, por algún motivo, el proyecto no está configurado, solo emite el siguiente comando:
gcloud config set project <PROJECT_ID>
Cloud Shell también configura algunas variables de entorno de forma predeterminada, lo que puede resultar útil cuando ejecutas comandos futuros.
echo $GOOGLE_CLOUD_PROJECT
Resultado del comando
<PROJECT_ID>
Aplicaciones de muestra
Todo lo que necesitas con relación a este proyecto se encuentra en un repositorio de Git. El repositorio contiene un par de aplicaciones de ejemplo y puedes usar cualquiera de ellas para este ejercicio.
Vínculo al repo de Git: https://github.com/rominirani/cloud-code-sample-repository
3. Implementa la aplicación de la API
¿De qué trata la aplicación o la API de muestra?
Nuestra aplicación es una aplicación simple de la API de Inventory que expone un extremo de la API de REST con un par de operaciones para enumerar los elementos del inventario y obtener el recuento de inventario de elementos específicos.
Una vez que implementemos la API y, suponiendo que esté alojada en https://<somehost>, podremos acceder a los extremos de la API de la siguiente manera:
- https://<somehost>/inventory
Esto mostrará una lista de todos los artículos de productos con los niveles de inventario disponibles.
- https://<somehost>/inventory/{productid}
Esto proporcionará un solo registro con el nivel de inventario en stock y el ID del producto.
Los datos de respuesta que se muestran están en formato JSON.
Datos de muestra y solicitud o respuesta a la API
Para simplificar el proceso, la aplicación no funciona con una base de datos en el backend. Contiene 3 IDs de productos de muestra y sus niveles de inventario en stock.
ID del producto | Nivel de inventario de mano |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
A continuación, se muestran una solicitud y una respuesta de la API de ejemplo:
Solicitud a la API | Respuesta de la API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Clona el repositorio
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:
El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:
Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.
Configura gcloud
En Cloud Shell, establece el ID del proyecto y guárdalo como la variable PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Ahora, ejecuta el siguiente comando:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Se creará una carpeta titulada cloud-code-sample-repository en esta carpeta.
Ejecuta la aplicación en Cloud Shell (opcional)
Para ejecutar la aplicación de forma local, sigue estos pasos:
- Desde la terminal, navega a la versión de Python de la API con el siguiente comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- En la terminal, ingresa el siguiente comando (en el momento de escribir este artículo, Cloud Shell viene con Python 3.9.x instalado y usaremos la versión predeterminada). Si planeas ejecutarlo de forma local en tu laptop, puedes usar Python 3.8 o versiones posteriores:
$ python app.py
- Puedes ejecutar el siguiente comando para iniciar el servidor de Python de forma local.
- Se iniciará un servidor en el puerto 8080 y podrás probarlo de forma local a través de la función Vista previa en la Web de Cloud Shell. Haz clic en el botón Vista previa en la Web, como se muestra a continuación:
Haz clic en Vista previa en el puerto 8080.
- Se abrirá una ventana del navegador. Verás un error 404, y eso está bien. Modifica la URL y cámbiala para que solo tenga /inventory después del nombre de host.
Por ejemplo, en mi máquina se verá de la siguiente manera:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Se mostrará la lista de elementos del inventario, como se explicó anteriormente:
- Puedes detener el servidor ahora; para ello, ve a la terminal y presiona Ctrl-C.
Implemente la aplicación
Ahora, implementaremos esta aplicación de la API en Cloud Run. El proceso implica usar el cliente de línea de comandos de gcloud para ejecutar el comando de implementación del código en Cloud Run.
Desde la terminal, ingresa el siguiente comando de gcloud:
$ gcloud run deploy --source .
Se te harán varias preguntas (si se te solicita autorización, continúa). A continuación, se mencionan algunos de los puntos. Es posible que recibas todas las preguntas o no, según la configuración y si ya habilitaste APIs específicas en tu proyecto de Google Cloud.
- Nombre del servicio (python-flask-api): Usa este valor predeterminado o elige algo como my-inventory-api.
- La API [run.googleapis.com] no está habilitada en el proyecto [número-del-proyecto]. ¿Quieres habilitarlo y volver a intentarlo (esto puede demorar unos minutos)? (y/N)? Sí
- Especifica una región: Elige una región de tu elección ingresando un número.
- La API [artifactregistry.googleapis.com] no está habilitada en el proyecto [project-number]. ¿Quieres habilitarlo y volver a intentarlo (esto puede demorar unos minutos)? (y/N)? Sí
- La implementación desde el código fuente requiere un repositorio de Docker de Artifact Registry para almacenar contenedores compilados. Se creará un repositorio llamado [cloud-run-source-deploy] en la región [us-west1].
Do you want to continue (Y/n)? Sí
- ¿Permitir invocaciones no autenticadas en [my-inventory-api] (y/N)? Sí
Eventualmente, esto iniciará el proceso para tomar tu código fuente, alojarlo en contenedores, enviarlo a Artifact Registry y, luego, implementar el servicio y la revisión de Cloud Run. Debes tener paciencia durante este proceso (puede tardar entre 3 y 4 minutos) y deberías ver que se completa con la URL del servicio que se te muestra.
A continuación, se muestra una ejecución de ejemplo:
Prueba la aplicación
Ahora que implementamos la aplicación en Cloud Run, puedes acceder a la aplicación de la API de la siguiente manera:
- Anota la URL del servicio del paso anterior. Por ejemplo, en mi configuración, se muestra como
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. Llamemos a esto <SERVICE_URL>. - Abre un navegador y accede a las siguientes 3 URLs de los extremos de la API:
- <SERVICE_URL>/inventory
- <SERVICE_URL>/inventory/I-1
- <SERVICE_URL>/inventario/I-100
Debe cumplir con las especificaciones que proporcionamos en una sección anterior con una solicitud y una respuesta de API de muestra.
Obtén detalles del servicio desde Cloud Run
Implementamos nuestro servicio de API en Cloud Run, un entorno de computación sin servidores. Podemos visitar el servicio de Cloud Run a través de la consola de Google Cloud en cualquier momento.
En el menú principal, navega a Cloud Run. Se mostrará la lista de servicios que ejecutas en Cloud Run. Deberías ver el servicio que acabas de implementar. Según el nombre que hayas seleccionado, deberías ver algo como lo siguiente:
Haz clic en el nombre del servicio para ver los detalles. A continuación, se muestran los detalles de la muestra:
Observa la URL, que no es más que la URL de servicio que puedes marcar en el navegador y acceder a la API de Inventory que acabamos de implementar. No dudes en consultar las métricas y otros detalles.
Comencemos a usar Google Cloud Operations Suite ahora.
4. Configura un panel
Una de las funciones convenientes que proporciona la supervisión de Cloud son los paneles listos para usar (OOTB) en varios recursos de Google Cloud. Esto hace que la configuración inicial de los paneles con métricas estándares sea un proceso rápido y conveniente.
Veamos cómo hacerlo para el servicio de API que acabamos de implementar en Cloud Run.
Panel personalizado para nuestro Servicio
Como implementamos nuestro servicio de API en Cloud Run, veamos cómo configurar paneles que pueden ayudar a visualizar varias métricas, algunas de las cuales incluyen la latencia del servicio.
Primero, desde la consola, visita Supervisión → Descripción general, como se muestra a continuación:
En la página Descripción general, se muestran varios elementos que configuraste en Monitoring, como paneles, alertas, verificaciones de tiempo de actividad, etcétera.
Por ahora, hagamos clic en Paneles en el menú principal lateral. Esto nos llevará a la siguiente pantalla:
Haz clic en BIBLIOTECA DE MUESTRA . Esto mostrará la lista de paneles listos para usar (OOTB) que están disponibles en Google Cloud, en varios recursos. Específicamente, desplázate hacia abajo en la lista y selecciona Google Cloud Run, como se muestra a continuación.
Se mostrará una lista de los paneles estándar disponibles para Google Cloud Run. Nos interesa ya que implementamos nuestro servicio en Cloud Run.
Verás un panel para Cloud Run Monitoring. Haz clic en el vínculo PREVIEW para ver la lista de gráficos estándares (métricas) disponibles para la supervisión de Cloud Run. Solo tienes que hacer clic en IMPORTAR PANEL DE MUESTRA para importar todos estos gráficos a un panel personalizado. Se mostrará una pantalla del panel con un nombre prepropagado para el mismo, como se muestra a continuación:
Para navegar hacia atrás, haz clic en la flecha hacia la izquierda, que se encuentra a la izquierda del nombre del panel, en la esquina superior izquierda. Esto te llevará a la lista de paneles, en la que deberías poder ver el panel nuevo que acabas de crear.
Haz clic en ese vínculo del Panel de control para supervisar varias métricas que están disponibles de forma predeterminada. Estas métricas incluyen latencia, recuento de solicitudes, métricas de contenedores y mucho más.
También puedes marcar cualquiera de los paneles como favorito. Para ello, selecciona el ícono de estrella, como se muestra a continuación:
Esto agregará el panel a la pantalla Resumen de Monitoring y se convertirá en una forma fácil de navegar a los paneles que se usan con frecuencia.
¡Fantástico! Acabas de agregar un panel personalizado para supervisar tus servicios de Cloud Run. ¡Bien hecho!
5. Verificaciones de tiempo de actividad
En esta sección, configuraremos una verificación del tiempo de actividad para nuestro servicio de API que implementamos. Una verificación de tiempo de actividad pública puede enviar solicitudes desde varias ubicaciones de todo el mundo a URLs disponibles públicamente o recursos de Google Cloud para ver si el recurso responde.
En este caso, el recurso será el servicio de API que implementamos en Cloud Run. La URL será un extremo específico que expone el servicio de API para indicar el estado del servicio.
En el código de ejemplo del servicio de API, exponemos un extremo /healthy que muestra un valor de cadena "All Izz Well". Por lo tanto, todo lo que tenemos que hacer es definir una verificación del tiempo de actividad que acceda a una URL como https://<SERVICE_URL>/healthy y verifique si se muestra la cadena "All Izz Well" o no.
Cómo crear un canal de notificaciones
Antes de crear la verificación de tiempo de actividad, es importante configurar los canales de notificación. Un canal de notificaciones es un medio a través del cual recibirás alertas si hay un incidente o un problema con alguno de nuestros recursos supervisados. Un ejemplo de un canal de notificaciones es Correo electrónico, y recibirás correos electrónicos en caso de que haya una alerta, etcétera.
Por ahora, vamos a configurar un canal de notificaciones por correo electrónico y hacerlo con nuestra dirección de correo electrónico, de modo que podamos recibir notificaciones en caso de que nuestro sistema envíe alertas y las configuraremos.
Para crear un canal de notificaciones, sigue estos pasos:
Ve a Supervisión → Alertas en el menú principal de la consola de Google Cloud, como se muestra a continuación:
Se mostrará una página con alertas, políticas y mucho más. Por ahora, verás un vínculo en la parte superior titulado EDITAR CANALES DE NOTIFICACIONES. Haz clic en él.
Se mostrará una lista de varios canales de notificaciones, como se muestra a continuación:
Ubica la sección Correo electrónico y haz clic en AGREGAR NUEVO para esa fila. Se abrirán los detalles de la configuración de correo electrónico, como se muestra a continuación:
Ingresa tu dirección de correo electrónico y un nombre visible, como se muestra a continuación. Haz clic en GUARDAR.
Esto completa la creación del canal de notificaciones por correo electrónico. Ahora, configuremos la verificación de tiempo de actividad.
Crea una verificación de tiempo de actividad
Ve a Monitoring → Verificaciones de tiempo de actividad en el menú principal de la consola de Google Cloud. En la parte superior, verás el vínculo CREATE UPTIME CHECK. Haz clic en él.
Deberás completar una serie de pasos para configurar la verificación de tiempo de actividad.
El primer paso es configurar los detalles del destino, es decir, la información sobre el servicio de Cloud Run que implementamos. A continuación, se muestra un formulario completado:
Los diferentes valores se pueden seleccionar de la siguiente manera:
- Protocolo : HTTPS
- Tipo de recurso : Selecciona Servicio de Cloud Run. Observa los otros recursos que admite y que también puedes configurar para que realicen verificaciones de tiempo de actividad.
- Servicio de Cloud Run : Selecciona my-inventory-api o el nombre específico que tengas para el servicio de Cloud Run.
- La ruta de acceso es /healthy, ya que devolvemos una cadena "All Izz Well" y queremos verificarla.
Haz clic en CONTINUAR para pasar al siguiente paso. El siguiente paso es el paso de validación de la respuesta, como se muestra a continuación:
Verás que habilitaremos la verificación de “Coincidencia de contenido” y, luego, configuraremos que la respuesta que muestre el extremo /healthy sea “All Izz Well”. Haz clic en CONTINUAR para continuar con el siguiente paso, en el que configuraremos la alerta y el canal de notificaciones sobre el que debemos recibir alertas si falla la verificación de tiempo de actividad.
En este paso, asigna un nombre a la alerta. Elegí Error de verificación del tiempo de actividad de la API de Inventory, pero puedes elegir el nombre que quieras. Lo importante aquí es seleccionar el canal de notificaciones correcto de la lista que configuraste antes.
Haz clic en REVISAR para ver el paso final y revisar la verificación de tiempo de actividad que configuramos.
En este paso final, asígnale un nombre a la verificación de tiempo de actividad (p.ej., Inventory API Uptime Check) y, luego, prueba si la verificación está configurada correctamente. Para ello, haz clic en el botón TEST.
Continúa y completa el proceso (haz clic en el botón CREAR a la izquierda). Google Cloud indicará a los sondeos de verificación de tiempo de actividad configurados en diferentes regiones que hagan ping a la URL y se recopilarán estas respuestas. Visita la sección Supervisión → Verificaciones de tiempo de actividad después de unos minutos. Lo ideal sería ver todos los indicadores en verde que indican que se pudo acceder a la URL desde los diferentes sondeos.
Si alguno de los sondeos falla durante un período (que se puede configurar), recibirás una notificación de alerta en el canal de correo electrónico que configuramos.
Esto completa nuestra sección sobre cómo configurar una verificación de tiempo de actividad. ¡Bien hecho!
6. Explorador de métricas
Cloud Monitoring expone miles de métricas estándar de varios productos de Google Cloud. Estas métricas están disponibles para investigarlas, realizar consultas, convertirlas en gráficos, agregarlas a Paneles de control, generar alertas y mucho más.
Nuestro objetivo en esta sección es:
- Comprende cómo puedes ver varias métricas y, luego, investigaremos una métrica específica (latencia) para nuestro servicio de API.
- Convertir esa métrica en un gráfico y un panel personalizado que luego podemos usar para visualizar la métrica en cualquier momento
Explora la métrica de latencia del servicio de la API de Inventory
Ve a Monitoring → Explorador de métricas en el menú principal de la consola de Google Cloud. Esta acción te llevará a la pantalla del Explorador de métricas. Haz clic en SELECT A METRIC. Ahora puedes navegar por varios recursos activos que tienen métricas generadas.
Como estamos tratando con servicios de Cloud Run, haz clic en Revisión de Cloud Run y, luego, en la categoría y la métrica específica titulada Latencia de la solicitud, como se muestra a continuación:
Haga clic en Aplicar. Se mostrará la latencia de la solicitud en un gráfico. Puedes cambiar el tipo de widget a un gráfico de líneas desde la configuración de visualización a la derecha como se muestra a continuación:
Se mostrará el gráfico de latencia como se muestra a continuación:
Crear gráfico y panel personalizado
Guardemos este gráfico. Haz clic en Guardar gráfico y usa los detalles como se muestra a continuación:
Ten en cuenta que estamos creando un panel nuevo , en lugar de guardarlo en uno existente. Haz clic en el botón GUARDAR. Se agregará el panel recién creado a nuestra lista de paneles, como se muestra a continuación:
Haz clic en el panel específico que creamos para ver los detalles.
Con esto, se completa la sección sobre cómo investigar varias métricas a través del Explorador de métricas y cómo podemos crear nuestros paneles personalizados.
7. Cloud Logging
En esta sección, exploraremos Cloud Logging. Cloud Logging incluye una interfaz del Explorador de registros que te ayuda a navegar y analizar los registros que generan varios servicios de Google y tus propias aplicaciones.
En esta sección, aprenderemos sobre el Explorador de registros y simularemos algunos mensajes de registro que luego podremos buscar y convertir en métricas a través de una función llamada Métricas basadas en registros.
Explorador de registros
Puedes visitar el Explorador de registros en Registros → Explorador de registros en la consola principal de Google Cloud, como se muestra a continuación:
Se mostrará una interfaz de registro en la que puedes seleccionar o anular la selección de varios recursos (proyecto, recurso de Google Cloud, nombres de servicios, etcétera) junto con los niveles de registro para filtrar los mensajes de registro según sea necesario.
Arriba se muestra la lista de registros para la revisión de Cloud Run, es decir, los servicios de Cloud Run que implementamos. Verás varias solicitudes que son verificaciones de tiempo de actividad que llegan al extremo /healthy que configuramos.
Cómo buscar advertencias
Simula algunas solicitudes no válidas al servicio de inventario proporcionando IDs de productos que no sean I-1, I-2 ni I-3. Por ejemplo, una solicitud incorrecta es la siguiente:
https://<SERVICE_URL>/inventory/I-999
Ahora, buscaremos todas las WARNINGs generadas por nuestra API cuando se proporcione un ID de producto incorrecto en la consulta.
En el cuadro de consulta, ingresa los siguientes parámetros de consulta:
resource.type="cloud_run_revision"
textPayload ~ "Received inventory request for incorrect productid"
Debería verse algo similar a esto:
Haz clic en Ejecutar consulta. Se mostrarán todas las solicitudes recibidas que tienen este problema.
Métricas basadas en registros
Creemos una métrica de registro personalizada para hacer un seguimiento de estos errores. Nos gustaría saber si hay una cantidad significativa de llamadas con IDs de productos incorrectos.
Para convertir lo anterior en una métrica de error, haz clic en el botón Crear métrica que aparece en el Explorador de registros.
Se abrirá el formulario para crear la definición de la métrica. Elige una métrica de contador y, luego, ingresa los detalles del nombre de la métrica (inventory_lookup_errors) y la descripción como se muestra a continuación. Haz clic en Crear métrica.
Esto creará la métrica de contador, y deberías ver un mensaje como el que se muestra a continuación:
Visita Logging → Métricas basadas en registros en el menú principal. Deberías ver la métrica personalizada que definimos en la lista de métricas definidas por el usuario, como se muestra a continuación:
Al final de esta entrada, encontrarás tres puntos verticales. Haz clic en ellos para ver las operaciones que puedes realizar en esta métrica personalizada. La lista debería ser similar a la que ves a continuación. Haz clic en la opción Ver en el Explorador de métricas.
Esto debería llevarnos al Explorador de métricas del que hablamos en la sección anterior, excepto que ahora está prepropagado.
Haga clic en Guardar gráfico. Usa los siguientes valores para las opciones de Guardar gráfico:
Se creará un panel nuevo en el que podrás ver los errores de la Búsqueda de inventario y estará disponible en la lista de paneles.
¡Genial! Ahora creaste una métrica personalizada a partir de tus registros y la convertiste en un gráfico que se encuentra en un panel personalizado. Esto nos ayudará a hacer un seguimiento de la cantidad de llamadas que usan IDs de productos incorrectos.
8. Políticas de alertas
En esta sección, usaremos la métrica personalizada que creamos y supervisaremos sus datos en busca de un límite, es decir, si la cantidad de errores supera un límite determinado, generaremos una alerta. En otras palabras, vamos a configurar una política de alertas.
Crea una política de alertas
Vayamos al panel de búsqueda de inventario. Esto hará que aparezca el gráfico que creamos para observar los errores de la búsqueda de inventario, como se muestra a continuación:
Se mostrarán los datos de métricas actuales. Primero, editemos la métrica como se muestra a continuación (haz clic en el botón Editar):
Se mostrarán los detalles de la métrica. Convertiremos el gráfico para que muestre la tasa de errores en una suma, es decir, la cantidad de errores. El campo que se debe cambiar se muestra a continuación:
Haz clic en APLICAR en la esquina superior derecha y volveremos a la pantalla Métricas, pero esta vez podremos ver la cantidad total de errores en el período de alineación en comparación con la tasa de errores.
Crearemos una política de alertas que pueda notificarnos en caso de que la cantidad de errores supere un límite. Haz clic en los 3 puntos que se encuentran en la esquina superior derecha del gráfico y, en la lista de opciones, como se muestra arriba, haz clic en Convertir a gráfico de alertas.
Deberías ver una pantalla como la que se muestra a continuación:
Haz clic en Siguiente para que aparezca un valor de umbral que podemos establecer. El umbral de muestra que tomamos aquí es 5 , pero puedes elegir el que prefieras.
Haz clic en SIGUIENTE para que aparezca el formulario de notificaciones.
Seleccionamos el canal de notificaciones como el canal de correo electrónico que creamos antes. Puedes completar los demás detalles, como la documentación (que se proporcionará como parte de la alerta que se genere). Haz clic en SIGUIENTE para ver el resumen y completar el proceso.
Una vez que crees esta política de alertas, aparecerá en la lista de políticas de alertas, como se muestra a continuación. Para acceder a la lista de políticas de alertas, ve a Monitoring → Alertas. Busca la sección Políticas en la página para ver la lista de políticas que configuramos hasta el momento.
¡Genial! Ahora, configuraste una política de alertas personalizada que te notificará en caso de que haya un aumento en la tasa de errores mientras buscas la API de Inventory.
9. Supervisión de servicios (opcional)
En esta sección, configuraremos los SLI o SLO para nuestros servicios según los principios de la ingeniería de confiabilidad de sitios (SRE). Notarás que Cloud Monitoring te facilita la tarea, ya que descubre automáticamente los servicios que implementaste en Cloud Run y puede calcular SLI clave, como la disponibilidad y la latencia, junto con los cálculos del presupuesto de errores.
Ahora, configuremos el SLO de latencia para nuestro servicio de API.
Cómo configurar el SLO de latencia para el servicio de inventario
Haz clic en Supervisión → Servicios en el menú principal de la consola de Cloud. Se mostrará la lista de servicios que se configuraron para la supervisión de servicios.
Actualmente, no tenemos ningún servicio configurado para la supervisión de SLI o SLO, por lo que la lista está vacía. Haz clic en el vínculo DEFINE SERVICE en la parte superior para definir o identificar un servicio primero.
Esto descubrirá automáticamente los servicios que son candidatos para la supervisión de SLO. Puede descubrir los servicios de Cloud Run, por lo que nuestro servicio de la API de Inventory implementado en Cloud Run aparecerá en la lista.
El nombre visible que veas puede ser diferente y dependerá de lo que hayas elegido en el momento de implementar el servicio en Cloud Run. Haz clic en el botón ENVIAR. Aparecerá la siguiente pantalla:
Puedes hacer clic en CREATE SLO. Esto te permitirá seleccionar entre los SLI que se calculan automáticamente.
Elegimos SLI de latencia como inicio. Haz clic en CONTINUAR. A continuación, verás una pantalla que muestra el rendimiento actual de este servicio y cuál ha sido la latencia típica.
Ingresamos un valor para el umbral, es decir, 300 ms, que es lo que queremos lograr. Si lo deseas, puedes elegir un valor diferente, pero ten en cuenta que esto afectará el porcentaje de error aceptable que definas según corresponda. Haz clic en CONTINUAR.
Ahora, configuramos el SLO (objetivo y período de medición) como se muestra a continuación:
Esto significa que seleccionamos el período de medición como un período de tipo continuo y lo medimos durante 7 días. Del mismo modo, para el objetivo, elegimos un objetivo del 90%. Lo que queremos decir es que el 90% de las solicitudes al servicio de la API deben completarse en 300 ms y esto se debe medir en un período de 7 días.
Haz clic en Continuar. Aparecerá la pantalla de resumen. Para confirmar esta acción, haz clic en el botón ACTUALIZAR SLO.
De esta manera, se guarda tu definición de SLO y el porcentaje de error aceptable se calcula automáticamente.
Puedes intentar lo siguiente:
- Ejerce la API a través de varias llamadas y observa el rendimiento del servicio y cómo afecta el presupuesto de errores restante.
- Modifica el código fuente para introducir un retraso adicional (inactividad) de forma aleatoria en algunas llamadas. Esto aumentará la latencia de varias llamadas y debería afectar negativamente el presupuesto de errores.
10. Felicitaciones
Felicitaciones, implementaste correctamente una aplicación de ejemplo en Google Cloud y aprendiste a usar Google Cloud's operations suite para supervisar el estado de la aplicación.
Temas abordados
- Implementa un servicio en Google Cloud Run.
- Configura un panel para el servicio de Google Cloud Run.
- Verificaciones de tiempo de actividad
- Configurar métricas de registro personalizadas y un panel o gráfico basado en estas.
- Explorar el Explorador de métricas y configurar el panel o gráfico
- Configura políticas de alertas.
- Configurar SLI/SLO para la supervisión de servicios en Google Cloud
Nota: Si ejecutaste el codelab con tu propia cuenta y proyecto de Google Cloud, es posible que se sigan generando cargos de facturación por los recursos asignados. Por lo tanto, borra el proyecto y los recursos cuando termines el lab.
¿Qué sigue?
Consulta esta Quest de Cloud Skills Boost para obtener más información sobre Google Cloud Operations Suite.