Acerca de la observabilidad de la base de datos

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

El diagnóstico y la solución de problemas de una aplicación pueden ser especialmente difíciles y lentos cuando se involucra una base de datos. La recopilación de telemetría es de vital importancia. 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. Puedes identificar problemas y tendencias problemáticas con facilidad y solucionarlos con anticipación, sin tener que incurrir en tiempo de inactividad costoso. Además, con esos datos, puedes configurar instancias de bases de datos más nuevas para que recopilen el tipo de datos correcto desde el momento en que se inician.

Puedes usar los datos de manera eficaz y proactiva para evitar problemas y enfocarte en la innovación estratégica. La buena recopilación de telemetría es muy útil en el modelo de DevOps, en el que los generalistas de la base de datos deben analizar de forma independiente la telemetría para supervisar, evaluar y optimizar el rendimiento y el estado de las aplicaciones que evolucionan con rapidez.

Google Cloud ofrece varias funciones potentes que abarcan las cuatro etapas de observabilidad iterativa para ayudarte a mantener el estado de la base de datos de Cloud SQL.

Las etapas iterativas de la implementación de la observabilidad

Recopilación automatizada de telemetría

Para lograr los objetivos de observabilidad, comenzamos con la recopilación de telemetría, preferentemente a través de un proceso automatizado. Cuando se recopila durante un período, la telemetría ayuda a establecer un modelo de referencia para las métricas en diferentes condiciones de carga.

Los servicios de Google Cloud generan automáticamente datos de observabilidad, entre los que se incluyen métricas, registros y seguimientos, que pueden ayudar a proporcionar una descripción general completa de la observabilidad.

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

  • Cloud Logging recopila datos de registro de componentes de aplicaciones comunes. Para Cloud SQL, consulta también Ve los registros de instancias.

  • Cloud Trace recopila datos de latencia y planes de consultas ejecutados de las aplicaciones para ayudarte a hacer un seguimiento de cómo se propagan las solicitudes a través de tus aplicaciones. Puedes comparar estas distribuciones de latencia con el tiempo o entre versiones. Cloud Trace te alerta cuando detecta un cambio significativo en el perfil de latencia de tu aplicación cuando está instrumentado para usar Cloud Trace.

Sqlcommenter, una biblioteca de OpenTelemetry para bases de datos, te ayuda a supervisar las bases de datos desde la perspectiva de una aplicación. Sqlcommenter instrumenta automáticamente las ORM para aumentar las instrucciones de 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 las arquitecturas basadas en microservicios.

Supervisión de la base de datos

La supervisión adecuada te ayuda a determinar si tu aplicación funciona de manera óptima. Implementa la supervisión temprano, antes de iniciar una migración o implementar una aplicación nueva en un entorno de producción. Distingue entre los problemas de la aplicación y los problemas subyacentes de la nube.

El panel de Estadísticas del sistema de Cloud SQL considera varios indicadores importantes del estado y el rendimiento generales de la base de datos.

En el panel, se muestran gráficos de varias métricas importantes, que te ayudan a obtener estadísticas sobre problemas, como la capacidad de procesamiento, la latencia y el costo. Estas estadísticas te ayudan a responder de forma proactiva a medida que cambian las necesidades de tu aplicación. Puedes comparar el rendimiento actual con las tendencias anteriores e identificar las anomalías que podrían necesitar investigación.

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

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

Puedes usar Cloud Monitoring para crear paneles personalizados que te ayuden a supervisar las métricas y configurar políticas de alertas a fin de que puedas recibir notificaciones oportunas.

Análisis de bases de datos y consultas

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

Los paneles de Estadísticas de consultas te ayudan a identificar los problemas de rendimiento de las consultas de forma anticipada y te permiten pasar de la detección a la resolución mediante una sola interfaz. Los planes de consultas visuales integradas te ayudan a solucionar problemas para encontrar la causa raíz. También puedes usar el seguimiento de aplicaciones de contexto y de extremo a extremo para encontrar la fuente de una consulta problemática.

Estadísticas de consultas proporciona supervisión centrada en la aplicación que te ayuda a diagnosticar problemas de rendimiento para aplicaciones compiladas con asignaciones relacionales de objetos (ORM). Puedes etiquetar consultas con la lógica empresarial con la que está asociada la consulta, como el pago, el inventario, las estadísticas empresariales o el envío. Estadísticas de consultas puede integrarse con tus herramientas de APM, lo que te permite supervisar y solucionar problemas de consultas con tu herramienta favorita.

La herramienta de Estadísticas de consultas usa sqlcommenter para instrumentar automáticamente tus ORM. Esta instrumentación te ayuda a identificar el código de la aplicación que causa problemas. Estadísticas de consultas admite los estándares de OpenTelemetry y hace que las métricas de consultas y los datos de seguimiento estén disponibles para tus herramientas de APM a través de la API de Google Cloud Observability.

Estadísticas de consultas se integra en Cloud Monitoring, lo que te permite crear paneles y alertas personalizados sobre las métricas o etiquetas de las consultas y recibir notificaciones por correo electrónico, SMS, Slack, PagerDuty y más.

Ajuste de la base de datos

Puedes solucionar problemas y ajustar 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 proporcionan recomendaciones y estadísticas basadas en métodos heurísticos y aprendizaje automático.

Los recomendadores de Cloud SQL se describen brevemente de la siguiente manera:

Nombre Descripción
Recomendador sin disco Reduce el riesgo de tiempo de inactividad que podrían ocasionar las instancias de Cloud SQL que se quedan sin espacio en el disco.
Recomendador de instancias inactivas A fin de reducir los costos, cierra las instancias de Cloud SQL que estén inactivas de forma involuntaria.
Recomendador de instancias aprovisionadas en exceso Para reducir costos, cambia 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 que genera el uso elevado de CPU y de memoria, y minimiza la probabilidad de tener eventos de memoria insuficiente. Para ello, cambia el tamaño de las instancias de Cloud SQL que tengan un uso elevado de CPU o memoria.
Recomendador de uso elevado de ID de transacción A fin de optimizar el rendimiento de tu instancia, evita la posible ajuste del ID de transacción para las instancias de PostgreSQL para Cloud SQL.

¿Qué sigue?