Domina Stack Driver Debugger en Google Cloud Platform con un flujo claro y práctico: desde seleccionar el código fuente hasta validar resultados en tiempo real. Aquí verás cómo usar puntos de log y breakpoints con condiciones para inspeccionar variables críticas sin detener tu servicio en producción. La guía refleja el proceso tal como se realiza en la consola de GCP.
¿Cómo configurar Stack Driver Debugger en Google Cloud Platform?
Para iniciar, se accede al menú de Google Cloud Platform, sección de servicios de Stack Driver, opción Debug. Luego, se elige la versión de la aplicación (por ejemplo, una versión de App Engine en producción) y se establece el origen del código fuente. Puedes vincular tu repositorio desde Google Cloud Source Repositories, GitHub, Bitbucket o subirlo localmente.
En el escenario mostrado, se selecciona el proyecto con el repositorio “plazi002”, se elige la rama “Storage” y se carga el Source. Al lado izquierdo aparece el navegador de archivos, lo que permite abrir el módulo adecuado y empezar a definir puntos de inspección.
¿Qué opciones de código fuente puedes usar?
- Subir código local para depurar sin Cloud Source.
- Conectar con Google Cloud Source Repositories.
- Integrar GitHub o Bitbucket sin fricciones.
- Cambiar de proyecto si el repositorio está en otra cuenta.
¿Cómo seleccionar la versión correcta?
- Elige la versión en producción por defecto.
- Verifica que los usuarios acceden a esa versión.
- Asegura que el código cargado coincide con lo desplegado.
¿Qué verás en la interfaz?
- El navegador de archivos del código.
- La vista principal para agregar log points y breakpoints.
- Controles para limpiar capturas previas y guardar cambios.
¿Cómo instrumentar puntos de log y breakpoints con condiciones?
Se abre el archivo de controladores de vista, como views.py, y se ubica el método “Listar”. Este método lista los objetos de un bucket de Cloud Storage y los guarda en memoria. Es ideal para inspeccionar la variable que contiene los “archivos disponibles”.
El paso clave es añadir un punto de log en una línea específica (por ejemplo, la línea 128). Además, se define una condición para controlar cuándo registrar información o errores, sin detener el flujo de ejecución.
¿Cómo definir un punto de log condicional?
- Selecciona la línea 128 en views.py.
- Agrega un log con condición sobre “archivos disponibles”.
- Si el tamaño es menor a 1: registra “No se pudieron obtener resultados”.
- Si es mayor a 1: registra un mensaje de información como “Se obtuvieron satisfactoriamente”.
¿Cómo usar breakpoints con lógica?
- Añade un breakpoint en la línea 128 o 129.
- Define la misma condición sobre “archivos disponibles”.
- Al cumplirse, el depurador se detiene virtualmente y muestra los datos de la variable.
¿Por qué es útil en producción?
- Permite verificar puntos exactos sin interrumpir usuarios.
- Acelera diagnóstico con reglas por condición.
- Centraliza la evidencia en los registros de GCP.
¿Cómo validar en tiempo real y leer los registros?
Para disparar la ejecución, se accede a la URL de la aplicación y al path correspondiente (por ejemplo, “lista objetos”). El depurador queda “a la espera” hasta que se cumpla la condición del punto establecido. Cuando la página se carga, se evalúa la expresión y se muestran los valores en la consola del Debugger.
En el ejemplo, “archivos disponibles” es un arreglo con tres elementos. Al ser mayor a cero, el log point imprime el mensaje de información. Luego, en los registros, se observa el evento tipo información confirmando que “los resultados se obtuvieron satisfactoriamente”.
¿Qué validar en la ejecución?
- Que el punto de log esté activo en la línea indicada.
- Que la condición sea verdadera y dispare el mensaje correcto.
- Que el breakpoint muestre el estado de variables clave.
¿Dónde revisar la evidencia?
- En la vista del Debugger: estado de variables y evaluaciones.
- En los registros: entradas de tipo información o error según la condición.
- En la interfaz: confirmación de puntos agregados y limpiados.
¿Te gustaría ver otros casos de uso con condiciones más complejas o diferentes rutas de la aplicación? Comparte tus dudas y experiencias en los comentarios.