Introducción a Cloud's operations suite

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.

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

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

30c26f30d17b3d46.png

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:

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 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://&lt;somehost&gt;/inventory/I-1

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

https://<somehost>/inventory/I-2

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

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 en esta carpeta.

Ejecuta la aplicación en Cloud Shell (opcional)

Para ejecutar la aplicación de forma local, sigue 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, 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
  1. Puedes ejecutar el siguiente comando para iniciar el servidor de Python de forma local.

26570f586acaeacf.png

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

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

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.

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.

  1. Nombre del servicio (python-flask-api): Usa este valor predeterminado o elige algo como my-inventory-api.
  2. 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í
  3. Especifica una región: Elige una región de tu elección ingresando un número.
  4. 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í
  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)? Sí

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

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. 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>.
  2. Abre un navegador y accede a las siguientes 3 URLs de los extremos de la API:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <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:

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

c51a5dda4ab72bbf.png

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.

2758f61f1e7f1dca.png

Por ahora, hagamos 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 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:

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

fc993d1a17415550.png

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.

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

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 en él.

5ab54f42e6f7b99.png

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

cd89b1ca9e1de87c.png

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:

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 en él.

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

a6011ac2ab3e0f10.png

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.

d9738670efcb999f.png

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.

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

7609d8156c8f1384.png

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:

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

c9cdcd63d5823abd.png

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

27354d8310d8a2d7.png

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:

df05f5b33fd5695a.png

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.

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

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="cloud_run_revision"

textPayload ~ "Received inventory request for incorrect productid"

Debería verse algo similar a esto:

b3ee512a0c9c5c7b.png

Haz clic en Ejecutar consulta. Se mostrarán todas las solicitudes recibidas 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. 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.

fa9a5e04922aa412.png

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.

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 ves 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 del que hablamos en la sección anterior, excepto que ahora está prepropagado.

7ee7403d0639ce25.png

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

9009da45f76eb4c5.png

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.

201ed66957cb64f9.png

¡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:

3591a1dd91a8b9fd.png

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):

5e76fc20d8387984.png

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:

65ccd1eaca607831.png

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.

cc9eec48b9bfbc92.png

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

6202ad1e88679a78.png

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.

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

c670b29da70c4655.png

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.

154da627959c54f3.png

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

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 CREATE SLO. Esto te permitirá seleccionar entre 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 de este servicio y cuál ha sido la latencia típica.

a9cc6f6778c13b52.png

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:

e1fc336d4191c08e.png

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.

f2540173d9f4a4b7.png

De esta manera, se guarda tu definición de SLO y el porcentaje de error aceptable se calcula automáticamente.

76393df0e189104.png

Puedes intentar lo siguiente:

  1. Ejerce la API a través de varias llamadas y observa el rendimiento del servicio y cómo afecta el presupuesto de errores restante.
  2. 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.

Lecturas adicionales