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

Mira este video para obtener una descripción general de alto nivel de las Operaciones de Google Cloud.

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 en relación con la API.

Qué aprenderás

  • Uso de Cloud Shell de Google Cloud para implementar una aplicación de muestra 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 cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (suele identificarse 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 usará el mismo 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 ninguna otra persona puede usarlo después de seleccionarlo. 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ía llevar solo unos minutos).

30c26f30d17b3d46.png

Si nunca has iniciado Cloud Shell, aparecerá una pantalla intermedia (debajo de la mitad inferior de la página) en la que se describirá qué es. 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 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 algunas aplicaciones de ejemplo, y puedes elegir 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 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 del inventario de un elemento específico.

Una vez que implementemos la API y suponiendo que se aloja en https://<somehost>, podemos acceder a los extremos de la API de la siguiente manera:

  • https://<somehost>/inventory

Se enumerarán todos los artículos del producto con los niveles de inventario disponibles.

  • https://<somehost>/inventory/{productid}

Esto proporcionará un solo registro con el productid y el nivel de inventario disponible para ese producto.

Los datos de respuesta que se devuelven están en formato JSON.

Datos de muestra y solicitud/respuesta de la API

Para simplificar el proceso, la aplicación no se basa en una base de datos en el backend. Contiene 3 IDs de productos de muestra y sus niveles de inventario disponibles.

ID del producto

Nivel de inventario disponible

I-1

10

I-2

20

I-3

30

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

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

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

Esto creará una carpeta llamada cloud-code-sample-repository en esta carpeta.

(Opcional) Ejecuta la aplicación en Cloud Shell

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, proporciona el siguiente comando (en el momento de la redacción, Cloud Shell incluye 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 una versión posterior:
$ python app.py
  1. Puedes ejecutar el siguiente comando para iniciar el servidor de Python de forma local.

26570f586acaeacf.png

  1. Esto iniciará un servidor en el puerto 8080, y podrás probarlo de forma local con 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, pero no te preocupes. Modifica la URL para que solo tenga /inventory después del nombre de host.

Por ejemplo, en mi máquina, se ve de la siguiente manera:

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

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

ef6afb0184c58870.png

  1. Ahora puedes detener el servidor. Para ello, ve a la terminal y presiona Ctrl-C.

Implemente la aplicación

Ahora implementaremos esta aplicación de API en Cloud Run. El proceso implicó el uso del cliente de línea de comandos de gcloud para ejecutar el comando que implementa el código en Cloud Run.

En la terminal, ejecuta el siguiente comando de gcloud:

$ gcloud run deploy --source .

Se te harán varias preguntas (si se te pide que autorices, continúa) y algunos de los puntos se mencionan a continuación. 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 usar este valor predeterminado o elegir algo como my-inventory-api.
  2. API [run.googleapis.com] not enabled on project [project-number]. Would you like to enable and retry (this will take a few minutes)? (y/N)? Y
  3. Especifica una región: Elige la región que prefieras ingresando un número.
  4. API [artifactregistry.googleapis.com] not enabled on project [project-number]. Would you like to enable and retry (this will take a few minutes)? (y/N)? Y
  5. La implementación desde el código fuente requiere un repositorio de Docker de Artifact Registry para almacenar los 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. Allow unauthenticated invocations to [my-inventory-api] (y/N)? Y

Finalmente, esto iniciará el proceso para tomar tu código fuente, alojarlo en un contenedor, 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 verás que se completa con la URL del servicio.

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

Debe cumplir con las especificaciones que proporcionamos en una sección anterior con una solicitud y respuesta de API de muestra.

Obtén detalles del servicio de Cloud Run

Implementamos nuestro servicio de API en Cloud Run, un entorno de procesamiento 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 se ejecutan en Cloud Run. Deberías ver el servicio que acabas de implementar. Según el nombre que seleccionaste, 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 del servicio que puedes ingresar en el navegador y acceder a la API de Inventory que acabamos de implementar. Puedes 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 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á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 Monitoring → Overview, como se muestra a continuación:

c51a5dda4ab72bbf.png

En la sección Overview, se muestran varios elementos que configuraste en Monitoring, como paneles, alertas, verificaciones de tiempo de actividad, etcétera.

2758f61f1e7f1dca.png

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

c9110b6f065100da.png

Haz clic en BIBLIOTECA DE MUESTRA . Se mostrará la lista de paneles listos para usar (OOTB) 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 porque implementamos nuestro servicio en Cloud Run.

Verás un panel para el Monitoreo de Cloud Run. Haz clic en el vínculo PREVIEW para ver la lista de gráficos estándar (métricas) disponibles para la supervisión de Cloud Run. Simplemente haz clic en IMPORT SAMPLE DASHBOARD para importar todos estos gráficos a un panel personalizado. Se mostrará una pantalla del panel con un nombre predeterminado, como se muestra a continuación:

531cb8434b18193a.png

Para volver, haz clic en la flecha hacia la izquierda, que se encuentra a la izquierda del nombre del panel, en la parte 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 y podrás supervisar varias métricas disponibles de forma predeterminada. Estas métricas incluyen la latencia, el recuento de solicitudes, las 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 de resumen de Monitoring y se convertirá en una forma sencilla 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 de tiempo de actividad para el servicio de la API que implementamos. Una verificación pública de tiempo de actividad puede emitir solicitudes desde varias ubicaciones de 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 expone 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 devuelve un valor de cadena "All Izz Well". Por lo tanto, todo lo que debemos hacer es definir una verificación del tiempo de actividad que acceda a algo como https://<SERVICE_URL>/healthy y verifique si se devuelve la cadena "All Izz Well".

Cómo crear un canal de notificación

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 problema con alguno de nuestros recursos supervisados. Un ejemplo de 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, configuraremos un canal de notificación por correo electrónico con nuestra dirección de correo electrónico para que podamos recibir notificaciones en caso de que nuestro sistema genere alertas, las cuales configuraremos.

Para crear un canal de notificaciones, sigue estos pasos:

En el menú principal de la consola de Google Cloud, ve a Monitoring → Alerting, como se muestra a continuación:

9f87859064c63b63.png

Se mostrará una página con Alertas, Políticas y mucho más. Por el momento, verás un vínculo en la parte superior llamado EDIT NOTIFICATION CHANNELS. 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 en esa fila. Aparecerá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.

Con esto, se 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

En el menú principal de la consola de Google Cloud, ve a Monitoring → Verificaciones de tiempo de actividad. En la parte superior, verás el vínculo CREATE UPTIME CHECK. Haz clic en él.

484541aec65e605e.png

Aparecerá una serie de pasos que deberás completar 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 en los que también podrías configurar verificaciones de tiempo de actividad.
  • Servicio de Cloud Run : Selecciona my-inventory-api o el nombre específico que tiene 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 avanzar al paso siguiente. El siguiente paso es Response Validation, como se muestra a continuación:

a6011ac2ab3e0f10.png

Puedes ver que habilitamos la verificación de "Content Matching" y, luego, configuramos que la respuesta que devuelve el extremo /healthy sea "All Izz Well". Haz clic en CONTINUAR para ir al siguiente paso, en el que configuraremos la alerta y el canal de notificaciones en el que deberíamos recibir alertas si falla la verificación de tiempo de actividad.

d9738670efcb999f.png

En este paso, asígnale un nombre a la alerta. Lo elegí como Falla en la 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 anteriormente.

Haz clic en REVISAR para el paso final de revisión de la verificación de tiempo de actividad que configuramos.

En este último paso, asígnale un nombre a la verificación de tiempo de actividad (p.ej., Verificación de tiempo de actividad de la API de Inventory) y, luego, también puedes probar si la verificación está configurada correctamente. Haz clic en el botón PROBAR para hacerlo.

80375bfab97fc313.png

Continúa y completa el proceso (haz clic en el botón CREAR a la izquierda). Google Cloud indicará a las sondas de verificación de tiempo de actividad configuradas en diferentes regiones que hagan ping a la URL, y se recopilarán estas respuestas. Visita la sección Monitoring → Uptime checks después de unos minutos y, de manera ideal, deberías ver todas las señales verdes que indican que se pudo acceder a la URL desde las diferentes sondas.

df17555ddbee1127.png

Si alguna de las sondas 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.

Con esto, finalizamos la 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 que las investigues, las consultes, las conviertas en gráficos, las agregues a paneles, generes alertas sobre ellas y mucho más.

El objetivo de esta sección es el siguiente:

  1. Comprende cómo puedes analizar 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 podamos usar para visualizar la métrica en cualquier momento

Explora la métrica de latencia para el servicio de la API de Inventory

En el menú principal de la consola de Google Cloud, ve a Monitoring → Explorador de métricas. Esta acción te llevará a la pantalla del Explorador de métricas. Haz clic en SELECCIONA UNA MÉTRICA. Ahora puedes navegar por varios recursos activos que tienen métricas generadas.

Como trabajamos con servicios de Cloud Run, haz clic en Revisión de Cloud Run, luego en la categoría y la métrica específica titulada 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 en la configuración de pantalla de 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

Crea un gráfico y un panel personalizado

Guardemos este gráfico. Haz clic en Guardar gráfico y usa los detalles como se muestran a continuación:

35d1788d5f0cb3c4.png

Ten en cuenta que crearemos un panel nuevo en lugar de guardarlo en uno 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

Con esto, se completa 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 y explorar los registros generados por 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 a través de Logging → Explorador de registros desde la consola principal de Google Cloud, como se muestra a continuación:

df05f5b33fd5695a.png

Se mostrará una interfaz de registro en la que podrás 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 de 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 acceden 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 ADVERTENCIAS que generó nuestra API cuando se proporcionó un ID de producto incorrecto en la consulta.

En el cuadro de consulta, inserta 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. Luego, se mostrarán todas las solicitudes que se recibieron 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. Nos gustaría saber si hay una cantidad significativa de llamadas con IDs de producto 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 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. Luego, 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 y 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, solo que ahora está completado previamente para nosotros.

7ee7403d0639ce25.png

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

9009da45f76eb4c5.png

Ahora se creará un nuevo panel en el que podrás ver los errores de la Búsqueda de inventario, y estará disponible en la lista de paneles.

201ed66957cb64f9.png

¡Excelente! 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 para un umbral, es decir, si la cantidad de errores supera un umbral determinado, generaremos una alerta. En otras palabras, configuraremos una política de alertas.

Crea una política de alertas

Vayamos al panel de búsqueda de inventario. Aparecerá el gráfico que creamos para registrar los errores de búsqueda de inventario, como se muestra a continuación:

3591a1dd91a8b9fd.png

Esto mostrará 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

Esto mostrará los detalles de la métrica. Convertiremos el gráfico para que muestre la cantidad de errores en lugar de la tasa. 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 nos pueda notificar en caso de que la cantidad de errores supere 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 alerta.

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 anteriormente. Puedes completar los otros 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, se mostrará 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 → Alerting. 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! Ahora configuraste una política de alertas personalizada que te notificará en caso de que aumente la tasa de errores mientras buscas en la API de Inventory.

9. Supervisión de servicios (opcional)

En esta sección, configuraremos los SLI y los SLO para nuestros servicios según los principios de la ingeniería de confiabilidad de sitios (SRE). Notarás que Cloud Monitoring te facilita las cosas, 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 presupuesto de errores.

Configuraremos el SLO de latencia para nuestro servicio de API.

Cómo configurar el SLO de latencia para el servicio de inventario

En el menú principal de Cloud Console, haz clic en Monitoring → Services. Se mostrará la lista de servicios que se configuraron para el Monitoreo de servicios.

Actualmente, no tenemos ningún servicio 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 detectará automáticamente los servicios que son candidatos para la supervisión de SLO. Puede detectar servicios de Cloud Run, por lo que nuestro servicio de la API de Inventory implementado en Cloud Run será visible en la lista.

522aaba719f85c54.png

El nombre visible que ves 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. Ahora podrás seleccionar entre los SLI que se calculan automáticamente para ti.

556e49b10d22e5ac.png

Elegimos SLI de latencia como punto de partida. 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. 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 (objetivo y período de medición) como se muestra a continuación:

e1fc336d4191c08e.png

Esto significa que seleccionamos la ventana de medición como una ventana de tipo continua y la medimos durante 7 días. Del mismo modo, para el objetivo, elegimos un objetivo del 90%. Lo que queremos decir aquí es que el 90% de las solicitudes al servicio de API deben completarse en un plazo de 300 ms, y esto se debe medir durante 7 días.

Haz clic en Continuar. Aparecerá la pantalla de resumen, que puedes confirmar haciendo clic en el botón UPDATE SLO.

f2540173d9f4a4b7.png

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

76393df0e189104.png

Estas son algunas acciones que puedes probar:

  1. Ejercita 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 (suspensión) de forma 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 muestra en Google Cloud y aprendiste a usar Google Cloud Operations Suite para supervisar el estado de la aplicación.

Temas abordados

  • Implementar un servicio en Google Cloud Run
  • Configuración de un panel para el servicio de Google Cloud Run
  • Verificaciones de tiempo de actividad
  • Configurar métricas de registros personalizadas y un panel o gráfico basado en ellas
  • Explorar el Explorador de métricas y configurar el panel o el gráfico
  • Configurar políticas de alertas
  • Configuración de 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 los recursos asignados sigan generando cargos de facturación. 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