Introducción a Cloud's operations suite

1. Introducción

Última actualización: 28/07/2023

¿Qué es Google Cloud's operations suite?

Google Cloud's operations suite es una plataforma en la que puedes supervisar, solucionar problemas y mejorar el rendimiento de la aplicación en tu entorno de Google Cloud. Los pilares clave de Cloud Operations Suite incluyen Cloud Monitoring, Cloud Logging y Cloud Tracing.

Mira este video para obtener una descripción general de Google Cloud Operations.

Qué compilarás

En este codelab, implementarás una API de muestra en Google Cloud. Luego, explorarás y configurarás varias funciones en Cloud Monitoring frente a la API.

Qué aprenderás

  • Uso de Cloud Shell de Google Cloud para implementar una aplicación de ejemplo en Cloud Run.
  • Uso de 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.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • 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 te 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 el tuyo propio y ver si está disponible. No se puede cambiar después de este paso y se mantendrá mientras dure el proyecto.
  • Para tu información, 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, el ID no se puede volver a usar.

  1. 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 te facture 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 forma 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, simplemente haz clic en Activar Cloud Shell (el aprovisionamiento y la conexión al entorno debería tardar solo unos minutos).

30c26f30d17b3d46.png

Si nunca iniciaste Cloud Shell, aparecerá una pantalla intermedia (mitad inferior de la página) que describe de qué se trata. Si ese es el caso, haz clic en Continuar (y no volverás a verlo). Así es como se ve la pantalla única:

9c92662c6a846a5c.png

El aprovisionamiento y la conexión a Cloud Shell solo tomará unos minutos.

9f0e51b578fecce5.png

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitas. 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 repo contiene un par de aplicaciones de ejemplo y puedes optar por usar cualquiera de ellas para este ejercicio.

Vínculo al repositorio de Git: https://github.com/rominirani/cloud-code-sample-repository

3. Implementa la aplicación de la API

¿De qué se trata la API o aplicación 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 implementamos la API y suponemos que está alojada en https://&lt;somehost&gt;, podemos acceder a los extremos de la API de la siguiente manera:

  • https://&lt;somehost&gt;/inventory

Esto mostrará una lista de todos los artículos de productos con los niveles de inventario disponibles.

  • https://&lt;somehost&gt;/inventory/{productid}

Esto proporcionará un registro único con el productid y el nivel de inventario disponible para ese 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 los niveles de inventario a mano.

ID del producto

Nivel de inventario de mano

I-1

10

I-2

20

I-3

30

A continuación, se muestran ejemplos de solicitudes y respuestas a la API:

Solicitud a la API

Respuesta de la API

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -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:

bce75f34b2c53987.png

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:

f6ef2b5f13479f3a.png

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.

(Opcional) Ejecuta la aplicación en Cloud Shell

Puedes ejecutar la aplicación de manera local si sigues estos pasos:

  1. 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
  1. En la terminal, proporciona el siguiente comando (al momento de escribir, Cloud Shell tiene instalado Python 3.9.x y usaremos la versión predeterminada. Si planeas ejecutarlo de manera local en tu laptop, puedes optar por Python 3.8 o superior) :
$ python app.py
  1. Puedes ejecutar el siguiente comando para iniciar el servidor Python de forma local.

26570f586acaeacf.png

  1. Esta acción iniciará un servidor en el puerto 8080 y podrá probarlo de manera local a través de la función de 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:

675d9b3097a6209c.png

Haz clic en Vista previa en el puerto 8080.

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

Por ejemplo: en mi máquina, se ve así:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Se mostrará la lista de elementos del inventario, como se explicó anteriormente:

ef6afb0184c58870.png

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

En la terminal, ejecuta el siguiente comando de gcloud:

$ gcloud run deploy --source .

A continuación, se te harán varias preguntas (si se te solicita que lo autorices, 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.

  1. Nombre del servicio (python-flask-api): Puedes elegir este valor predeterminado o uno como my-inventory-api
  2. La API [run.googleapis.com] no está habilitada en el proyecto [número-del-proyecto]. ¿Deseas habilitarla y volver a intentarlo (el proceso tardará unos minutos)? (y/N)? Y
  3. Especifica una región: Ingresa un número para elegir la región que prefieras.
  4. La API [artifactregistry.googleapis.com] no está habilitada en el proyecto [project-number]. ¿Deseas habilitarla y volver a intentarlo (el proceso tardará unos minutos)? (y/N)? Y
  5. 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)? Y

  1. ¿Quieres permitir invocaciones no autenticadas de [my-inventory-api] (y/N)? Y

Finalmente, 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 cómo se completa con la URL del servicio que se te muestra.

A continuación, se muestra un ejemplo de ejecución:

7516696ea5b3004b.png

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:

  1. Toma nota de 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. Llamémoslo &lt;SERVICE_URL&gt;.
  2. Abre un navegador y accede a las siguientes 3 URLs para los extremos de la API:
  3. &lt;SERVICE_URL&gt;/inventory
  4. <SERVICE_URL>/inventario/I-1
  5. <SERVICE_URL>/inventario/I-100

Debería cumplir con las especificaciones que proporcionamos en una sección anterior con un ejemplo de Solicitud y Respuesta de la API.

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.

Desde 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 esto:

10d2c363241d789c.png

Haz clic en el nombre del servicio para ver los detalles. A continuación, se muestran los detalles de la muestra:

1ec2c9e45ff1a2db.png

Observa la URL, que no es más que la URL de servicio que puedes presionar en el navegador y acceder a la API de Inventory que acabamos de implementar. Siéntete libre de consultar las métricas y otros detalles.

Comencemos ahora con Google Cloud's operations suite.

4. Configura un panel

Una de las funciones convenientes que proporciona Cloud Monitoring 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ándar 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

Ya que implementamos nuestro servicio de API en Cloud Run, veamos cómo configurar paneles que ayudan a visualizar varias métricas, algunas de las cuales incluyen la latencia del servicio.

En primer lugar, desde la consola, visita Monitoring → Descripción general como se muestra a continuación:

c51a5dda4ab72bbf.png

En la descripción general, se muestran varios elementos que habrías configurado en Monitoring, como paneles, alertas, verificaciones de tiempo de actividad, etcétera.

2758f61f1e7f1dca.png

Por ahora, vamos a hacer clic en Paneles, en el menú principal lateral. Esto nos llevará a la siguiente pantalla:

c9110b6f065100da.png

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.

ddac4038d4fa91ae.png

Se mostrará una lista de los paneles estándar que están disponibles para Google Cloud Run. Nos interesa porque implementamos nuestro servicio en Cloud Run.

Verás un panel para Cloud Run Monitoring. Haz clic en el vínculo VISTA PREVIA para ver la lista de gráficos estándar (métricas) disponibles para Cloud Run Monitoring. Simplemente haz clic en IMPORT SAMPLE DASHBOARD para importar todos estos gráficos a un panel personalizado. Esto mostrará una pantalla del panel con un nombre completado previamente para el mismo que se muestra a continuación:

531cb8434b18193a.png

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 lo llevará a la lista de paneles, de los cuales debería poder ver el nuevo panel que acaba de crear.

Haz clic en el vínculo de ese panel para supervisar varias métricas que están disponibles para usarse de inmediato. 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 favoritos, simplemente seleccionando el ícono de estrella, tal como se muestra a continuación:

fc993d1a17415550.png

Esto agregará el panel a la pantalla Overview de Monitoring y se convertirá en una forma fácil de navegar a los paneles de uso frecuente.

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

¡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 de tiempo de actividad para el servicio de API que implementamos. Una verificación de tiempo de actividad pública puede enviar solicitudes desde múltiples ubicaciones en todo el mundo a URLs disponibles públicamente o a 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 exponga el servicio de API para indicar el estado del servicio.

En el código de servicio de la API de muestra, expusimos un extremo /healthy que muestra un valor de cadena "All Izz Well". Entonces, lo único que tenemos que hacer es definir una verificación de tiempo de actividad que acceda a algo como https://&lt;SERVICE_URL&gt;/healthy y verifique si se muestra o no la cadena https://&lt;SERVICE_URL&gt;/healthy.

Cómo crear un canal de notificaciones

Antes de crear la verificación de tiempo de actividad, es importante configurar los canales de notificaciones. Un canal de notificaciones es un medio por el que recibirás alertas si existe un incidente o un problema con alguno de nuestros recursos supervisados. Un ejemplo de un canal de notificaciones es el 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:

9f87859064c63b63.png

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 allí.

5ab54f42e6f7b99.png

Esto mostrará una lista de varios canales de notificaciones, como se muestra a continuación:

cd89b1ca9e1de87c.png

Busca la sección Correo electrónico y haz clic en AGREGAR NUEVO para esa fila. Esto hará que aparezcan los detalles de la configuración de correo electrónico como se muestra a continuación:

d6ed98ffd0427fa3.png

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 allí.

484541aec65e605e.png

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:

4e2bb9fe022320f7.png

Los diferentes valores se pueden seleccionar de la siguiente manera:

  • Protocolo : HTTPS
  • Tipo de recurso : Selecciona el servicio de Cloud Run. Observa los otros recursos que admite y que puedes configurar verificaciones de tiempo de actividad en ellos también.
  • Servicio de Cloud Run : Selecciona my-inventory-api o el nombre específico que tienes para el servicio de Cloud Run.
  • La ruta de acceso es /healthy, ya que volvemos a mostrar una cadena "All Izz Well" y queremos comprobar eso.

Haz clic en CONTINUAR para pasar al siguiente paso. El próximo paso es el de Validación de respuestas, como se muestra a continuación:

a6011ac2ab3e0f10.png

Puede ver que estamos habilitando la verificación de "Coincidencia de contenido" y, luego, configura 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.

d9738670efcb999f.png

En este paso, asígnale un nombre a la alerta. Lo seleccioné como Error en la verificación de tiempo de actividad de la API de Inventory, pero puede elegir su nombre. Lo importante aquí es seleccionar el canal de notificaciones correcto de la lista que configuraste anteriormente.

Haz clic en REVISAR para acceder al último paso 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.

80375bfab97fc313.png

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.

df17555ddbee1127.png

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:

  1. Comprende cómo puedes ver varias métricas y, luego, investigaremos una métrica específica (latencia) para nuestro servicio de API.
  2. 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 para el 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 SELECCIONAR UNA MÉTRICA. Ahora puedes navegar por varios recursos activos que tienen métricas generadas.

Dado que estamos trabajando con los servicios de Cloud Run, haz clic en Revisión de Cloud Run y, luego, en la categoría y la métrica específica, tituladas Latencia de solicitud, como se muestra a continuación:

7609d8156c8f1384.png

Haga clic en Aplicar. Esto 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:

46086ac0a8eaf3d7.png

Se mostrará el gráfico de latencia como se muestra a continuación:

ad97f749eeacaa95.png

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:

35d1788d5f0cb3c4.png

Ten en cuenta que estamos creando un panel nuevo , en lugar de guardarlo en un panel existente. Haz clic en el botón GUARDAR. Esto agregará el panel recién creado a nuestra lista de paneles, como se muestra a continuación:

c9cdcd63d5823abd.png

Haz clic en el panel específico que creamos para ver los detalles.

27354d8310d8a2d7.png

Aquí termina la sección sobre la investigación de 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 por los registros generados por varios servicios de Google y tus propias aplicaciones, además de explorarlos.

En esta sección, aprenderemos sobre el Explorador de registros y simularemos algunos mensajes de registro que podemos buscar y convertir en métricas a través de la función llamada Métricas basadas en registros.

Explorador de registros

Puedes visitar el Explorador de registros en Logging → Explorador de registros desde la consola principal de Google Cloud, como se muestra a continuación:

df05f5b33fd5695a.png

Esto 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.) junto con niveles de registro para filtrar los mensajes de registro según sea necesario.

e7fa15bcf73f3805.png

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 producto que no sean I-1, I-2 ni I-3. Por ejemplo: una solicitud incorrecta es:

https://&lt;SERVICE_URL&gt;/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=&quot;cloud_run_revision&quot;

textPayload =~ "Se recibió una solicitud de inventario correspondiente a un productid incorrecto"

Debería verse algo similar a esto:

b3ee512a0c9c5c7b.png

Haz clic en Ejecutar consulta. Esto te mostrará todas las solicitudes que han llegado y que tienen este problema.

5fdbd7c23bf4694f.png

Métricas basadas en registros

Creemos una métrica de registro personalizada para hacer un seguimiento de estos errores. Quisiéramos 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 ves en el Explorador de registros.

fa9a5e04922aa412.png

Esto hará que aparezca el formulario para crear la definición de la métrica. Elige una métrica de contador, ingresa los detalles para el nombre de la métrica (inventory_lookup_errors) y la descripción, como se muestra a continuación, y haz clic en Create Metric.

70b5719b472d4d02.png

Esto creará la métrica de contador, y deberías ver un mensaje como el que se muestra a continuación:

ab9058028185e4d5.png

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:

7d186e90559cf8e1.png

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 se muestra a continuación. Haz clic en la opción Ver en el Explorador de métricas.

7586f0789a0bdb41.png

Esto debería llevarnos al Explorador de métricas que aprendimos en la sección anterior, excepto que ya está prepropagado.

7ee7403d0639ce25.png

Haga clic en Guardar gráfico. Usa los siguientes valores para las opciones Guardar gráfico:

9009da45f76eb4c5.png

Esto creará un nuevo panel en el que podrás ver los errores de Inventory Search y estará disponible en la lista de paneles.

201ed66957cb64f9.png

Excelente. Ya creaste una métrica personalizada a partir de tus registros y la convertiste en un gráfico que está allí en un panel personalizado. Esto nos ayudará a hacer un seguimiento de la cantidad de llamadas en las que se 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 para determinar un umbral, es decir, si la cantidad de errores supera un determinado umbral, se generará 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:

3591a1dd91a8b9fd.png

Esto mostrará los datos de la métrica actual. Primero, editemos la métrica como se muestra a continuación (haz clic en el botón Editar):

5e76fc20d8387984.png

Aparecerán los detalles de la métrica. Vamos a convertir el gráfico de la tasa de errores a una suma, es decir, la cantidad de errores. A continuación, se muestra el campo que se debe cambiar:

65ccd1eaca607831.png

Haz clic en APLICAR en la esquina superior derecha para volver a la pantalla de 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.

Vamos a crear una política de alertas que pueda notificarnos si la cantidad de errores supera un umbral. 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 en gráfico de alertas.

cc9eec48b9bfbc92.png

Deberías ver una pantalla como se muestra a continuación:

6202ad1e88679a78.png

Haga clic en Next para que aparezca un valor de Threshold que podamos establecer. El umbral de la muestra que asumimos aquí es de 5 , pero puedes elegirlo según prefieras.

734f809cc802ab78.png

Haz clic en SIGUIENTE para que aparezca el formulario de notificaciones.

f2d84fb85c2520cb.png

Seleccionamos el canal de notificaciones como el canal de correo electrónico que creamos anteriormente. Puede 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.

c670b29da70c4655.png

Una vez que crees esta política de alertas, será visible en la lista de políticas de alertas, como se muestra a continuación. Puedes acceder a la lista de políticas de alertas en Supervisión → Alertas. Busca la sección Políticas en la página para ver la lista de políticas que configuramos hasta el momento.

154da627959c54f3.png

Excelente. Ya configuraste una política de alertas personalizada que te notificará en caso de que aumente la tasa de errores mientras buscas la API de Inventory.

9. Supervisión del servicio (opcional)

En esta sección, configuraremos SLI/SLO para nuestros servicios según los principios de la ingeniería de confiabilidad de sitios (SRE). Notarás que Cloud Monitoring facilita la tarea, ya que detecta automáticamente los servicios que implementaste en Cloud Run y puede calcular automáticamente los SLI clave, como la disponibilidad y la latencia, junto con los cálculos del porcentaje de error aceptable.

Ahora, configuremos el SLO de latencia para nuestro servicio de API.

Configura el SLO de latencia para el servicio de inventario

Haz clic en Monitoring → Servicios en el menú principal de la consola de Cloud. Esto mostrará la lista de servicios que se configuraron para la supervisión de servicios.

Actualmente, no tenemos ningún servicio que se haya configurado para la supervisión de SLI/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.

42d14515a481213.png

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.

522aaba719f85c54.png

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:

eca08010ab6858a9.png

Puedes hacer clic en CREAR SLO. Esto te permitirá seleccionar los SLI que se calculan automáticamente.

556e49b10d22e5ac.png

Elegimos SLI de latencia como inicio. Haz clic en CONTINUAR. A continuación, verás una pantalla que muestra el rendimiento actual del servicio y cuál ha sido la latencia típica.

a9cc6f6778c13b52.png

Ponemos un valor para el umbral, es decir, 300 ms, que es lo que queremos lograr. Puedes elegir un valor diferente si lo deseas, pero ten en cuenta que afectará el porcentaje de error aceptable que definas en consecuencia. Haz clic en CONTINUAR.

Ahora, configuramos el SLO (ventana de objetivo y medición) como se muestra a continuación:

e1fc336d4191c08e.png

Esto significa que seleccionaremos la ventana de medición como una ventana de tipo móvil y la mediremos en 7 días. Del mismo modo, para el objetivo, elegimos un objetivo del 90%. Lo que intentamos decir aquí es que el 90% de las solicitudes al servicio de la API se deben completar en un plazo de 300 ms y esto se debe medir en 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.

f2540173d9f4a4b7.png

Esto guarda tu definición de SLO y el porcentaje de error aceptable se calcula automáticamente.

76393df0e189104.png

Puedes intentar lo siguiente:

  1. Ejercer la API a través de varias llamadas y ver el rendimiento del servicio y cómo afecta el porcentaje de error aceptable restante
  2. Modifica el código fuente para introducir algún retraso adicional (suspensión) de manera aleatoria en algunas llamadas. Esto aumentará la latencia de varias llamadas y debería afectar negativamente el porcentaje de error aceptable.

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

  • Cómo implementar 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's operations suite.

Lecturas adicionales