Acerca de la observabilidad de las bases de datos

La observabilidad de la base de datos es una medida de la precisión con la que puedes inferir el estado interno de un sistema de base de datos en función de los datos o la telemetría que genera en registros, métricas y trazas.

Diagnosticar y solucionar problemas en una aplicación puede ser especialmente difícil y llevar mucho tiempo cuando hay una base de datos implicada. La recogida de datos de telemetría es fundamental. La telemetría, cuando se enriquece con el contexto de la aplicación, puede hacer que las instancias de la base de datos sean más comprensibles, observables y fáciles de mantener. Puede identificar problemas y tendencias problemáticas fácilmente y solucionarlos pronto, sin tener que incurrir en costosos tiempos de inactividad. Además, al usar estos datos, puede configurar instancias de bases de datos más recientes para que recojan el tipo de datos adecuado desde el momento en que se inician.

Puedes usar los datos de forma eficaz y proactiva para evitar problemas y centrarte en la innovación estratégica. Una buena recogida de telemetría es especialmente útil en el modelo de DevOps, en el que los generalistas de bases de datos deben analizar la telemetría de forma independiente para monitorizar, evaluar y optimizar el rendimiento y el estado de sus aplicaciones en rápida evolución.

Google Cloud ofrece varias funciones potentes que abarcan las cuatro fases iterativas de observabilidad para ayudarte a mantener el estado de tu base de datos de Cloud SQL.

Las fases iterativas de la implementación de la observabilidad

Recogida de telemetría automatizada

Para alcanzar los objetivos de observabilidad, empezamos recogiendo telemetría, preferiblemente mediante un proceso automatizado. Cuando se recogen durante un periodo, los datos de telemetría ayudan a establecer una base de referencia para las métricas en diferentes condiciones de carga.

Google Cloud generan automáticamente datos de observabilidad, como métricas, registros y seguimientos, que pueden ayudar a proporcionar una vista general completa de la observabilidad.

  • Cloud Monitoring recoge mediciones de tu servicio y de los Google Cloud recursos que utilizas. Cloud SQL usa agentes personalizados de memoria integrados para recoger telemetría de consultas, lo que reduce el impacto en el rendimiento y elimina la necesidad de mantenimiento de agentes o sobrecarga de seguridad.

  • Cloud Logging recoge datos de registro de componentes de aplicaciones comunes. En el caso de Cloud SQL, consulta también Ver registros de instancias.

  • Cloud Trace recoge datos de latencia y planes de consulta ejecutados de las aplicaciones para ayudarte a monitorizar cómo se propagan las solicitudes por tu aplicación. Puedes comparar estas distribuciones de latencia a lo largo del tiempo o entre versiones. Cloud Trace te avisa cuando detecta un cambio significativo en el perfil de latencia de tu aplicación si está configurada para usar Cloud Trace.

Sqlcommenter, una biblioteca de OpenTelemetry para bases de datos, te ayuda a monitorizar tus bases de datos desde la perspectiva de una aplicación. Sqlcommenter instrumenta automáticamente los ORMs para aumentar las instrucciones SQL con etiquetas y permite que la información del contexto de seguimiento de OpenTelemetry se propague a la base de datos.

Con las etiquetas y el contexto de la aplicación de seguimiento en las bases de datos, es fácil correlacionar el código de la aplicación con el rendimiento de la base de datos y solucionar problemas de arquitecturas basadas en microservicios.

Monitorización de bases de datos

Una monitorización adecuada te ayuda a determinar si tu aplicación funciona de forma óptima. Implementa la monitorización pronto, por ejemplo, antes de iniciar una migración o de desplegar una nueva aplicación en un entorno de producción. Distingue entre los problemas de la aplicación y los problemas de la nube subyacentes.

En la página de información general de Cloud SQL se muestran gráficos de algunas de las métricas clave.

Cloud SQL también te ayuda a comparar métricas de las instancias seleccionadas.

Puedes usar Cloud Monitoring para crear paneles de control personalizados que te ayuden a monitorizar métricas y para configurar políticas de alertas que te permitan recibir notificaciones oportunas.

Ajuste de bases de datos

Puedes solucionar problemas y optimizar tu base de datos de forma iterativa.

Los recomendadores de Cloud SQL te ayudan a analizar el uso actual de tu base de datos y te ofrecen recomendaciones e información valiosa basadas en métodos heurísticos y aprendizaje automático.

A continuación se describen brevemente los recomendadores de Cloud SQL:

Nombre Descripción
Recomendador cuando falta espacio en disco Reduce el riesgo de que se produzcan periodos de inactividad debido a que tus instancias de Cloud SQL se queden sin espacio en disco.
Recomendador de instancias inactivas Reducir los costes cerrando las instancias de Cloud SQL que están inactivas por error.
Recomendador de instancias sobreaprovisionadas Reducir los costes cambiando el tamaño de las instancias de Cloud SQL que sean innecesariamente grandes para una carga de trabajo determinada.
Recomendador de instancias con aprovisionamiento insuficiente Evita los cuellos de botella derivados de un uso elevado de la CPU y la memoria, y minimiza la probabilidad de que se produzcan eventos de falta de memoria cambiando el tamaño de las instancias de Cloud SQL que tengan un uso elevado de la CPU o de la memoria.

Siguientes pasos