Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Observabilidad y ajuste de una base de datos de Cloud SQL para PostgreSQL

Lab 40 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

GSP921

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, usarás SQL Insights para analizar el rendimiento de una base de datos de Cloud SQL. Modificarás una aplicación de Google Kubernetes Engine (GKE) existente con la biblioteca SQLcommenter para anotar las consultas de la aplicación con comentarios que te ayudarán a identificar su fuente en la aplicación.

Debes crear o configurar los servicios y recursos que se especifican y seguir las instrucciones detalladas que se proporcionan para completar cada tarea de forma correcta.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Configurar y utilizar SQL Insights
  • Configurar una aplicación para usar SQLcommenter
  • Tomar medidas para ajustar y optimizar una base de datos y mejorar el rendimiento

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

  2. Haz clic para avanzar por las siguientes ventanas:

    • Continúa en la ventana de información de Cloud Shell.
    • Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

Resultado:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Habilita las APIs

Debes habilitar las APIs necesarias para este lab. Compilarás y enviarás un contenedor a Artifact Registry en una tarea posterior, por lo que primero debes habilitar la API de Artifact Registry.

  • En Cloud Shell, ejecuta el siguiente comando:
gcloud services enable sqladmin.googleapis.com gcloud services enable artifactregistry.googleapis.com

Obtén credenciales para el clúster de Kubernetes

  • Debes configurar la autenticación del clúster de Kubernetes que se implementó para ti cuando comenzó el lab. Este proceso crea un archivo config en una carpeta (oculta) .kube en tu carpeta principal.
export ZONE={{{project_0.default_zone | Zone}}} gcloud container clusters get-credentials postgres-cluster --zone=$ZONE

Ejecuta la aplicación gMemgen

  1. En un navegador, ve a la dirección IP de entrada del balanceador de cargas.

  2. Puedes crear un vínculo en el que se pueda hacer clic que lleve a la dirección IP externa del balanceador de cargas en Cloud Shell con los siguientes comandos:

export LOAD_BALANCER_IP=$(kubectl get svc gmemegen-service \ -o=jsonpath='{.status.loadBalancer.ingress[0].ip}' -n default) echo gMemegen Load Balancer Ingress IP: http://$LOAD_BALANCER_IP
  1. Haz clic en el vínculo en Cloud Shell y verás la aplicación gMemegen que se ejecuta en el navegador.

Tarea 1: Examina las consultas en SQL de la aplicación de GKE con SQL Insights

En esta tarea, examinarás las consultas que genera la aplicación gMemegen. Deberás generar algo de tráfico. Para ello, tendrás que crear memes con la aplicación y visualizarlos en sus páginas Recent y Random.

Habilita SQL Insights en tu instancia de Cloud SQL para PostgreSQL

Para completar esta tarea, debes habilitar SQL Insights en la base de datos de Cloud SQL.

  1. En la consola de Cloud, ve a Bases de datos > Cloud SQL y selecciona la instancia postgres-gmemegen.

  2. En el menú Instancia principal, selecciona Estadísticas de consultas.

  3. Haz clic en el botón Habilitar.

  4. En la página Instancia principal > Estadísticas de consultas, en Etiquetas y búsquedas más frecuentes, selecciona la pestaña Etiquetas.

  5. Haz clic en Almacenar etiquetas de aplicación

Crea y visualiza algunos memes

En este paso, crearás al menos cuatro memes nuevos y los verás con la aplicación gMemegen. El objetivo es probar repetidamente la aplicación, generar algunos datos de muestra y usar todas las rutas disponibles.

  1. En la pestaña de la aplicación gMemegen, ve a la página principal y selecciona una imagen.

  2. En la página para crear un nuevo meme, escribe algo en los cuadros de texto de la parte superior y la parte inferior. Puedes crear cualquier meme que se te ocurra.

  3. Haz clic en el botón Enviar. Verás cómo se renderiza tu nuevo meme.

  4. Regresa usando el botón Atrás del navegador.

  5. Haz clic en el elemento de menú Recientes para ver los memes recientes que creaste.

  6. Haz clic en el elemento de menú Ordenados para ver los memes ordenados alfabéticamente por texto principal.

  7. Haz clic en el elemento de menú Aleatorio para ver un meme aleatorio. Cierra la pestaña Aleatorio en el navegador.

  8. Haz clic en el elemento de menú página principal para regresar y crear un meme nuevo.

Ejecuta los puntos 1 al 8 mencionados con anterioridad hasta que hayas creado al menos 4 memes nuevos.

Una selección de seis memes de muestra

Examina la actividad de la base de datos de la aplicación gMemegen con SQL Insights

  1. En el menú Instancia principal, ve a Estadísticas de consultas.

  2. Abre el menú desplegable en el campo Bases de datos y selecciona gmemegen_db. Si no ves gmemegen_db en la lista, actualiza la página. Es posible que gmemegen_db tarde un poco en estar disponible en la lista. Generar más tráfico de base de datos realizando más acciones en la aplicación gMemegen podría ser de ayuda.

El elemento de base de datos gmemegen_db

  1. Desplázate hacia abajo hasta Etiquetas y búsquedas más frecuentes. Las consultas que genera la aplicación gMemegen se enumeran en la pestaña Consultas.

Pestaña Consultas

  1. Haz clic en la pestaña Etiquetas. Verás que no hay etiquetas en la lista en este momento.

SQL Insights no puede diferenciar los orígenes de las consultas porque no tienen etiquetas. Existe una herramienta para desarrolladores de bases de datos llamada SQLcommenter que puede servirte porque agregará comentarios a las consultas de la aplicación, lo que completará las etiquetas en esta vista. Esto es muy útil para que los desarrolladores y los verificadores realicen un seguimiento de la fuente de las consultas de la aplicación, lo que ayuda en la depuración y la optimización.

Debes anotar la hora actual para poder comparar los resultados en SQL Insights antes y después de incluir la biblioteca SQLcommenter en el código de la aplicación.

Haz clic en Revisar mi progreso para verificar el objetivo. Examina las consultas en SQL de la aplicación de GKE con SQL Insights

Tarea 2: Habilita SQLcommenter en una aplicación de GKE

En esta tarea, modificarás la aplicación de gMemegen para incluir el código de la biblioteca SQLcommenter, que anotará las consultas de la aplicación para que sean más útiles en SQL Insights.

Modifica la aplicación de gMemegen y vuelve a compilar el código fuente

En este paso, modificarás el código de Python del archivo main.py de la app de gMemegen para habilitar SQLcommenter. Los cambios ya están en el código y solo se deben quitar los comentarios, por lo que esto se puede lograr con un comando sed simple. También volverás a compilar la aplicación y almacenarás la nueva imagen en Artifact Registry.

  1. En Cloud Shell, descarga el código fuente de la aplicación gMemegen:
gsutil -m cp -r gs://spls/gsp921/gmemegen .

Para habilitar SQLcommenter, quita los comentarios del siguiente bloque de código en el archivo de Python gmemegen/app/main.py. De este modo, la aplicación quedará lista para agregar etiquetas a las consultas con SQLcommenter.

##from sqlalchemy import event ##from google.cloud.sqlcommenter.sqlalchemy.executor import BeforeExecuteFactory app = Flask(__name__) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False ##app.config['SQLALCHEMY_RECORD_QUERIES'] = True app.config['SQLALCHEMY_ECHO'] = True app.config['SQLALCHEMY_DATABASE_URI'] = get_db_uri() db = SQLAlchemy(app) ##listener = BeforeExecuteFactory(with_db_driver=True) ##event.listen(db.engine, 'before_cursor_execute', listener, retval=True)
  1. Para quitar los comentarios del código de la aplicación de gMemegen que habilita SQLcommenter, ejecuta el siguiente comando en Cloud Shell:
sed -i 's/##//g' gmemegen/app/main.py
  1. En Cloud Shell, cambia la plantilla de encabezado de la aplicación para identificar la versión actualizada:
sed -i 's/gMemegen/gMemegen (SQLcommenter)/g' gmemegen/app/templates/header.html

Compila y envía una nueva imagen a Artifact Registry

En este paso, compilarás el código de la aplicación modificado y enviarás la imagen, etiquetada como "versión 2", a Artifact Registry.

  1. Configura la autenticación de Docker para Artifact Registry: export REGION={{{project_0.default_region | REGION}}} gcloud auth configure-docker ${REGION}-docker.pkg.dev

Ingresa Y si se te solicita una confirmación.

  1. Crea el repositorio de artefactos:

    export REPO=gmemegen gcloud artifacts repositories create $REPO \ --repository-format=docker --location=$REGION
  2. Compila y envía la nueva imagen a Artifact Registry:

    cd gmemegen export PROJECT_ID=$(gcloud config list --format 'value(core.project)') gcloud builds submit --tag ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v2

El proceso de compilación y envío tardará unos minutos en completarse. Cuando esté listo, el resultado debería indicar una compilación correcta, como se muestra a continuación.

Resultado:

ID: 801538cf-f0e5-43b4-b0e4-5071ad026bf3 CREATE_TIME: 2022-08-10T18:41:21+00:00 DURATION: 1M27S SOURCE: gs://qwiklabs-gcp-04-2dea2c1461c0_cloudbuild/source/1660156876.254161-89dl7080030e49f28e42ab7dc207d91a.tgz IMAGES: us-east1-docker.pkg.dev/qwiklabs-gcp-04-2dea2c1461c0/gmemegen/gmemegen-app:v2 STATUS: SUCCESS

Haz clic en Revisar mi progreso para verificar el objetivo. Habilita SQLcommenter en una aplicación de GKE

Tarea 3: Vuelve a implementar la aplicación gMemegen

En esta tarea, volverás a implementar la aplicación gMemegen modificada. Luego, podrás comparar las consultas de las dos versiones de la aplicación con SQL Insights.

  1. Para actualizar el archivo YAML de implementación con el ID del proyecto, el nombre de la conexión de Cloud SQL y la región ejecuta el siguiente comando en Cloud Shell:

    export CLOUDSQL_INSTANCE=postgres-gmemegen export CONNECTION_NAME=$(gcloud sql instances describe $CLOUDSQL_INSTANCE --format 'value(connectionName)') sed -i "s/CONNECTION-NAME/${CONNECTION_NAME}/g" gmemegen_canary_deployment.yaml export PROJECT_ID=$(gcloud config list --format 'value(core.project)') sed -i "s/PROJECT-ID/${PROJECT_ID}/g" gmemegen_canary_deployment.yaml export REGION={{{project_0.default_region | REGION}}} sed -i "s/us-central1/${REGION}/g" gmemegen_canary_deployment.yaml
  2. En Cloud Shell, vuelve a implementar la aplicación ejecutando el siguiente comando:

kubectl apply -f gmemegen_canary_deployment.yaml
  1. En Cloud Shell, vuelve a implementar el balanceador de cargas y selecciona versión 2.0 como versión de la aplicación:

    sed -i "s/1.0/2.0/g" gmemegen-service.yaml kubectl apply -f gmemegen-service.yaml
  2. En Cloud Shell, ejecuta el siguiente comando para verificar que la implementación se haya realizado correctamente:

kubectl get pods

Resultado:

NAME READY STATUS RESTARTS AGE gmemegen-7975bf9776-fl7g9 2/2 Running 0 7m46s gmemegen-canary-7cc8687cfc-rqx4h 2/2 Running 0 33s

Ahora tienes una nueva implementación de la aplicación gMemegen en ejecución.

Haz clic en Revisar mi progreso para verificar el objetivo. Vuelve a implementar la aplicación gMemegen

Tarea 4: Revisa las consultas de la aplicación en SQL Insights

En esta tarea, volverás a SQL Insights para revisar la actividad de la base de datos de la aplicación actualizada, lo que incluye SQLcommenter. Primero, deberás generar más actividad en la base de datos. Para ello, deberás crear algunos memes con la nueva versión de la app.

Crea algunos memes nuevos

En este paso, crearás memes nuevos con la nueva versión de la aplicación que implementaste en la Tarea 3. La aplicación muestra (SQLcommenter) junto a su nombre en la barra de menú para indicar que es una nueva app.

La app gMemegen (SQLcommenter)

  • Cambia a la pestaña de la aplicación gMemegen y genera tráfico de base de datos. Para ello, crea algunos memes nuevos y haz clic en los vínculos Recientes y Ordenados varias veces.

Revisa las consultas de la aplicación en SQL Insights

En este paso, revisarás las consultas de la aplicación que se acaba de implementar y anotarás las etiquetas que insertó SQLcommenter.

  1. En la pestaña de la consola de Cloud, ve a la página Instancia principal > Estadísticas de consultas. En Etiquetas y búsquedas más frecuentes, selecciona la pestaña Etiquetas.

  2. Haz clic en el nombre de la columna Carga por tiempo total. Esta acción debería actualizar la lista de consultas etiquetadas y mostrar todas las consultas recientes que SQLcommenter etiquetó.

Observa que las etiquetas Controller, Route, DB Driver y Framework ahora se completaron.

Si no puedes ver esta consulta en la pestaña Etiquetas, actualiza la página web, selecciona la pestaña Etiquetas y vuelve a hacer clic en el nombre de la columna Carga por tiempo total.

Pestaña Etiquetas (continuación, debido al ancho de la tabla) Pestaña Etiquetas (continuación)

Identifica una consulta de ejecución lenta en SQL Insights

En este paso, analizarás el rendimiento de las consultas de la aplicación para identificar una consulta de ejecución lenta.

  1. En la página Estadísticas de consultas de la consola de Cloud, desplázate hacia abajo hasta Etiquetas y búsquedas más frecuentes.

Pestaña Consultas

  1. Haz clic en la pestaña Etiquetas.

  2. Selecciona la etiqueta con /sorted en la columna Ruta.

Debería tener la carga más alta, como lo indican las barras verdes, pero con la cantidad relativamente pequeña de datos en el lab, es posible que no sea así. El gráfico Latencia de las consultas de tu lab probablemente mostrará solo unos pocos registros, pero, con datos adicionales, te permitirá ver las consultas que tienen valores de latencia altos (P95 y P99).

Gráfico Latencia de las consultas

  1. Regresa a la vista Etiquetas y búsquedas más frecuentes con el botón Atrás del navegador. Como alternativa, puedes usar las rutas de navegación en la parte superior de la página Estadísticas de consultas y seleccionar la instancia postgres-gmemegen.

  2. Selecciona la etiqueta /recent en la columna Ruta, que debería tener una carga y una latencia ligeramente más bajas. En tu lab, esta acción solo mostrará resultados que tal vez no difieran significativamente de la ruta /sorted.

Gráfico Latencia de las consultas

Estas consultas devuelven la misma cantidad de filas. ¿Por qué su rendimiento es diferente? La respuesta está en el hecho de que el campo meme.id es la clave primaria de la tabla meme y, por lo tanto, está indexado; mientras que el campo meme.top_text no está indexado y, por lo tanto, lleva más tiempo ejecutarlo.

Nota: Dado que la base de datos gmemegen_db es muy pequeña, ya que solo tiene tantas filas como las que generaste a través de la IU durante este lab, es posible que la diferencia en el rendimiento de estas dos rutas no sea evidente de inmediato ni observable. En un entorno de producción, la diferencia en el rendimiento de las consultas que se ordenan según los campos indexados y no indexados será evidente.

Tarea 5: Toma medidas para ajustar y optimizar la base de datos y mejorar el rendimiento

En esta tarea, modificarás la base de datos gmemegen_db para corregir la consulta de ejecución lenta que identificaste en la tarea anterior.

Agrega un índice a la base de datos de Cloud SQL para PostgreSQL

En este paso, agregarás un índice a una columna de la base de datos para mejorar el rendimiento.

  1. En la consola de Cloud, ve a la página Instancia principal > Descripción general. En la sección Conectarse a esta instancia, haz clic en Abrir Cloud Shell. Un comando completará automáticamente la consola de Cloud Shell. Ejecútalo.

  2. Cuando se te solicite, ingresa la contraseña supersecret!.

  3. En el prompt postgres=> de psql, ejecuta el siguiente comando:

    \c gmemegen_db
  4. Se te solicitará que ingreses la contraseña nuevamente. Escribe supersecret!.

  5. En el prompt gmemegen_db=> de psql, ejecuta el siguiente comando:

CREATE INDEX idx_meme_top_text ON meme(top_text);
  1. Abre la pestaña de la aplicación gMemegen y haz clic en el vínculo Ordenados un par de veces para generar algunas consultas nuevas.

Verifica el rendimiento de la consulta

En este paso, verificarás el rendimiento de la consulta de ejecución lenta ahora que se agregó un índice a la columna en la que se está ordenando.

  1. En la consola de Cloud, ve a la página Instancia principal > Estadísticas de consultas. En la sección Etiquetas y búsquedas más frecuentes de la pestaña Etiquetas, selecciona nuevamente la etiqueta /sorted.

  2. Desplázate hacia abajo hasta el gráfico Latencia de las consultas. Deberías ver que la latencia se redujo.

Gráfico Latencia de las consultas

Nota: Dado que la cantidad de datos en la base de datos es relativamente pequeña, es posible que no haya una diferencia apreciable en tu lab.

Haz clic en Revisar mi progreso para verificar el objetivo. Toma medidas para ajustar y optimizar la base de datos y mejorar el rendimiento

Completaste este lab.

¡Felicitaciones!

En este lab, aprendiste a configurar y usar SQL Insights, configurar una aplicación para usar SQLcommenter y tomar medidas para ajustar y optimizar la base de datos para mejorar el rendimiento.

Última actualización del manual: 8 de diciembre de 2025

Prueba más reciente del lab: 8 de diciembre de 2024

Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.