Sobre a observabilidade do banco de dados

A observabilidade do banco de dados é uma medida da precisão com que é possível inferir o estado interno de um sistema de banco de dados com base nos dados (ou telemetria) gerado em registros, métricas e traces.

Diagnóstico e solução de problemas em um aplicativo podem ser particularmente difíceis e demorados quando um banco de dados está envolvido. A coleta de telemetria é essencial. Quando a telemetria é enriquecida com o contexto do aplicativo, as instâncias de banco de dados podem ser mais compreensíveis, observáveis e fáceis de manter. É possível identificar problemas e tendências problemáticas facilmente e remediar esses problemas antecipadamente, sem ter que incorrer em um tempo de inatividade dispendioso. Além disso, usando esses dados, é possível configurar instâncias de banco de dados mais recentes para coletar o tipo certo de dados desde o momento em que são iniciadas.

É possível usar dados de maneira eficiente e proativa para evitar problemas e se concentrar na inovação estratégica. A coleta de boa telemetria é particularmente útil no modelo de DevOps, em que os generalistas de banco de dados precisam analisar a telemetria de modo independente para monitorar, avaliar e otimizar o desempenho e a integridade de aplicativos em rápida evolução.

O Google Cloud oferece vários recursos avançados que abrangem os quatro estágios de observabilidade iterativa para ajudar você a manter a integridade do seu banco de dados do Cloud SQL.

Os estágios iterativos da implementação da observabilidade

Coleta de telemetria automatizada

Para alcançar as metas de observabilidade, começamos coletando a telemetria, de preferência por um processo automatizado. Quando coletados durante um período, a telemetria ajuda a estabelecer um valor de referência para métricas em diferentes condições de carregamento.

Os serviços do Google Cloud geram automaticamente dados de observabilidade, incluindo métricas, registros e traces, o que pode ajudar a fornecer uma visão geral completa da observabilidade.

  • O Cloud Monitoring coleta medições do seu serviço e dos recursos do Google Cloud que você usa. O Cloud SQL usa agentes personalizados de memória integrada para coletar a telemetria de consulta, resultando em baixo impacto no desempenho e eliminando a necessidade de manutenção do agente ou sobrecarga de segurança.

  • O Cloud Logging coleta dados de registro de componentes comuns do aplicativo. Para o Cloud SQL, consulte também Visualizar registros de instância.

  • O Cloud Trace coleta dados de latência e planos de consulta executados em aplicativos para ajudar a rastrear como as solicitações se propagam pelo aplicativo. É possível comparar essas distribuições de latência ao longo do tempo ou entre versões. O Cloud Trace alerta você quando detecta uma alteração significativa no perfil de latência do seu aplicativo, quando ele estiver instrumentado para usar o Cloud Trace.

O Sqlcommenter, uma biblioteca OpenTelemetry para bancos de dados, ajuda você a monitorar os bancos de dados pelas lentes de um aplicativo. A Sqlcommenter instrumenta automaticamente os ORMs para ampliar as instruções SQL com tags e permite que as informações de contexto de trace do OpenTelemetry sejam propagadas para o banco de dados.

Com tags e rastreamento de contexto do aplicativo em bancos de dados, é fácil correlacionar código de aplicativo com o desempenho do banco de dados e resolver problemas em arquiteturas baseadas em microsserviços.

Monitoramento do banco de dados

O monitoramento adequado ajuda a determinar se o aplicativo está funcionando de maneira ideal. Implemente o monitoramento antecipadamente, como antes de iniciar uma migração ou implantar um novo aplicativo em um ambiente de produção. Elimine a ambiguidade entre problemas de aplicativos e problemas de nuvem.

A página de visão geral do Cloud SQL mostra gráficos de algumas das principais métricas.

O Cloud SQL também ajuda a comparar métricas de instâncias selecionadas.

Use o Cloud Monitoring para criar painéis personalizados para monitorar métricas e configurar políticas de alertas para receber notificações oportunas.

Análise de banco de dados e consulta

A ferramenta Query Insights do Cloud SQL fornece monitoramento e diagnósticos que permitem detectar e corrigir problemas de desempenho da consulta.

Os painéis de insights de consulta ajudam a identificar problemas de desempenho de consulta antecipadamente e passar da detecção para a resolução usando uma única interface. Os planos de consulta visuais integrados ajudam você na solução de problemas. Use também o rastreamento de aplicativo de ponta a ponta e contextualizado para encontrar a origem de uma consulta problemática.

Os insights de consulta fornecem monitoramento centrado no aplicativo para diagnosticar problemas de desempenho em aplicativos criados com mapeamentos relacionais de objetos (ORMs, na sigla em inglês). É possível marcar consultas com a lógica de negócios a que elas estão associadas, como pagamento, inventário, análise de negócios ou frete. Os insights de consulta podem ser integrados às ferramentas APM atuais, para que você possa monitorar e solucionar problemas de consulta usando sua ferramenta favorita.

A ferramenta Query Insights usa sqlCommenter para instrumentar automaticamente os ORMs. Essa instrumentação ajuda a identificar o código do aplicativo que está causando problemas. Os Query Insights são compatíveis com os padrões OpenTelemetry e disponibiliza métricas de consulta e dados de traces para suas ferramentas de APM pela API Google Cloud Observability.

Os insights de consulta são integrados ao Cloud Monitoring, permitindo criar painéis e alertas personalizados em métricas ou tags de consulta e receber notificações usando e-mail, SMS, Slack, PagerDuty e mais.

Ajuste de banco de dados

É possível resolver problemas e ajustar iterativamente seu banco de dados.

Os recomendadores do Cloud SQL ajudam a analisar o uso atual do banco de dados, além de fornecer recomendações e insights baseados em métodos heurísticos e machine learning.

Os recomendadores do Cloud SQL são descritos brevemente da seguinte maneira:

Nome Descrição
Recomendador de falta de espaço em disco Reduza o risco de inatividade causado pelas instâncias do Cloud SQL sem espaço em disco.
Recomendador de instância ociosa Reduza os custos encerrando instâncias do Cloud SQL que estão inativas.
Recomendador com provisionamento em excesso Reduza os custos redimensionando instâncias do Cloud SQL que são desnecessariamente grandes para uma determinada carga de trabalho.
Recomendador de instância subprovisionado Evite gargalos no uso elevado de CPU e memória e minimize a probabilidade de eventos de falta de memória redimensionando instâncias do Cloud SQL com alto uso de CPU e/ou memória.
Recomendador de alta quantidade de tabelas abertas Otimize o desempenho da instância aumentando o tamanho do cache de abertura da tabela para as instâncias do Cloud SQL que têm o número de tabelas abertas iguais ao cache de abertura de tabela e continuam abrindo muitas tabelas simultaneamente.
Recomendador de alta quantidade de tabelas Otimize o desempenho da instância reduzindo o número de tabelas para as instâncias do Cloud SQL em que a contagem de tabelas é muito alta e está próxima do limite do SLA.

A seguir