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.

El panel de control Estadísticas del sistema de Cloud SQL tiene en cuenta varias señales importantes del estado y el rendimiento generales de la base de datos.

El panel de control muestra gráficos de varias métricas importantes que te ayudan a obtener información valiosa sobre problemas como el rendimiento, la latencia y el coste. Estas estadísticas te ayudan a responder de forma proactiva a medida que cambian las necesidades de tu aplicación. Puede comparar el rendimiento actual con las tendencias anteriores e identificar anomalías que puedan requerir una investigación.

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.

Análisis de bases de datos y consultas

La herramienta Estadísticas de consultas de Cloud SQL proporciona monitorización y diagnósticos que te permiten detectar y solucionar problemas de rendimiento de las consultas.

Los paneles de control de Estadísticas de consultas te ayudan a identificar los problemas de rendimiento de las consultas en una fase temprana y te permiten pasar de la detección a la resolución mediante una única interfaz. Los planes de consulta visuales integrados te ayudan a solucionar problemas para encontrar la causa principal. También puedes usar el rastreo de aplicaciones integral y contextual para encontrar la fuente de una consulta problemática.

Información valiosa sobre las consultas proporciona una monitorización centrada en las aplicaciones que te ayuda a diagnosticar problemas de rendimiento de las aplicaciones creadas con asignaciones objeto-relacionales (ORM). Puede etiquetar las consultas con la lógica empresarial a la que están asociadas, como pagos, inventario, analíticas empresariales o envíos. Información valiosa sobre las consultas se puede integrar con tus herramientas de monitorización del rendimiento de las aplicaciones (APM) para que puedas monitorizar y solucionar problemas de consultas con tu herramienta favorita.

La herramienta Información útil sobre las consultas usa sqlcommenter para instrumentar automáticamente tus ORMs. Esta instrumentación te ayuda a identificar el código de la aplicación que está causando problemas. Query Insights admite los estándares de OpenTelemetry y pone a disposición de tus herramientas de APM las métricas de consulta y los datos de seguimiento a través de la API Google Cloud Observability.

Query Insights se integra con Cloud Monitoring, lo que te permite crear paneles de control y alertas personalizados sobre métricas o etiquetas de consultas, así como recibir notificaciones por correo electrónico, SMS, Slack, PagerDuty y más.

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.
Recomendador de uso elevado de IDs de transacción Optimiza el rendimiento de tu instancia evitando que se produzca un envolvente de ID de transacción en las instancias de Cloud SQL para PostgreSQL.

Siguientes pasos