Menu
Contato Comercial

Guidelines do Google para Sistemas de Monitoramento

Por: Pedro César Tebaldi Gomes em 01.02.2021
Guidelines do Google para Sistemas de Monitoramento

Este artigo é baseado nas Guidelines do Google, disponibilizadas aqui, sobre sistemas de monitoramento de SREs (Site Reliability Engineering), ou engenharia de confiabilidade local. É uma tradução livre, com adaptações pontuais, assim como contextualizações para o cenário brasileiro.

O monitoramento pode incluir muitos tipos de dados, incluindo métricas, registros de textos, registros de eventos estruturados, rastreamentos distribuídos e introspecções de eventos. Embora todas essas abordagens sejam úteis por si só, este artigo trata principalmente de métricas e registros estruturados. Em nossa experiência, essas duas fontes de dados são mais adequadas às necessidades fundamentais de monitoramento, segundo boas práticas de SREs.

No nível mais básico, o monitoramento permite que você ganhe visibilidade de um sistema, que é um requisito básico para julgar a integridade do serviço e diagnosticar quando algo dá errado. Os SREs monitoram seus sistemas para:

  • Alertar sobre condições que requerem atenção;
  • Investigar e diagnosticar esses problemas;
  • Exibir informações sobre o sistema visualmente;
  • Informar sobre as tendências no uso de recursos ou integridade do serviço para planejamento de longo prazo;
  • Comparar o comportamento do sistema antes e depois de uma mudança;
  • Comparar o comportamento do sistema entre dois grupos em um experimento.

A importância relativa desses casos de uso pode levar você a fazer concessões ao selecionar ou construir um sistema de monitoramento. Este artigo fala sobre como gerenciar sistemas de monitoramento e fornece algumas diretrizes para perguntas que podem surgir ao escolher e executar um sistema deste tipo.

 

Características desejáveis ​​de uma estratégia de monitoramento

Ao escolher um sistema de monitoramento, é importante entender e priorizar os recursos que serão importantes para você. Se você está avaliando diferentes sistemas de monitoramento, os atributos nesta seção podem ajudar a orientar seu pensamento sobre qual solução melhor atende às necessidades da sua empresa.

Se você já tem uma estratégia de monitoramento, pode considerar o uso de alguns recursos adicionais de sua solução atual. Dependendo de suas necessidades, um sistema de monitoramento pode atender a todos os seus casos de uso ou você pode querer usar uma combinação de sistemas.

 

Velocidade

Organizações diferentes terão necessidades diferentes no que diz respeito à atualização dos dados e à velocidade de recuperação de dados. Os dados devem estar disponíveis quando você precisa deles: a atualização afeta quanto tempo levará seu sistema de monitoramento para avisá-lo quando algo der errado.

Além disso, dados lentos podem levar você a acidentalmente agir com dados incorretos. Por exemplo, durante a resposta a incidentes, se o tempo entre a causa (execução de uma ação) e o efeito (ver essa ação refletida em seu monitoramento) for muito longo, você pode presumir que uma mudança não teve efeito ou deduzir uma correlação falsa entre causa e efeito. Dados com mais de quatro ou cinco minutos de desatualização podem afetar significativamente a velocidade com que você pode responder a um incidente.

Se você estiver selecionando um sistema de monitoramento com base nesses critérios, precisa descobrir seus requisitos de velocidade com antecedência. A velocidade de recuperação de dados é principalmente um problema quando você consulta grandes quantidades de dados. Pode levar algum tempo para um gráfico carregar se ele tiver que registrar muitos dados de muitos sistemas monitorados.

Para acelerar seus gráficos mais lentos, é útil se o sistema de monitoramento pode criar e armazenar novas séries temporais com base nos dados de entrada; então, ele pode pré-calcular as respostas às perguntas comuns.

 

Cálculos

O suporte para cálculos pode abranger uma variedade de casos de uso, em uma gama de complexidades. No mínimo, você provavelmente desejará que seu sistema retenha os dados por um período de vários meses. Sem uma visão de longo prazo de seus dados, você não pode analisar tendências de longo prazo, como o crescimento do sistema.

Em termos de granularidade, os dados sumarizados (ou seja, dados agregados que você não pode detalhar) são suficientes para facilitar o planejamento do crescimento. A retenção de todas as métricas individuais detalhadas pode ajudar a responder a perguntas como: “Este comportamento incomum já aconteceu antes?” No entanto, os dados podem ser caros para armazenar ou impraticáveis ​​para recuperar.

As métricas que você retém sobre eventos ou consumo de recursos devem ser contadores incrementados monotonicamente. Usando contadores, seu sistema de monitoramento pode calcular funções em uma janela de tempo — por exemplo, para relatar a taxa de solicitações por segundo desse contador.

Por fim, o suporte para uma gama mais completa de funções estatísticas pode ser útil porque operações triviais podem mascarar o mau comportamento. Um sistema de monitoramento que suporta percentis de computação (ou seja, 50º, 95º, 99º percentis) ao registrar a latência permitirá que você veja se 50%, 5% ou 1% de suas solicitações são muito lentas, enquanto a média aritmética só pode dizer — sem especificações — que o tempo da solicitação é mais lento. Como alternativa, se o seu sistema não suportar percentis de computação diretamente, você pode conseguir isso:

  • Obter um valor médio somando os segundos gastos em solicitações e dividindo pelo número de solicitações;
  • Registrar todas as solicitações e calcular os valores percentuais por meio da varredura ou amostragem das entradas de registro.

Você pode querer registrar seus dados métricos brutos em um sistema separado para análise offline – por exemplo, para usar em relatórios semanais ou mensais, ou para realizar cálculos mais intrincados que são muito difíceis de computar em seu sistema de monitoramento.

 

Interfaces

Um sistema de monitoramento robusto deve permitir que você exiba concisamente dados de série temporal em gráficos e também estruture dados em tabelas ou uma variedade de estilos de gráfico. Seus painéis serão as interfaces principais para exibir o monitoramento, por isso é importante que você escolha formatos que exibam mais claramente os dados de seu interesse. Algumas opções incluem mapas de calor, histogramas e gráficos de escala logarítmica.

Provavelmente, você precisará oferecer diferentes visualizações dos mesmos dados com base no público; a gerência de alto nível pode querer visualizar informações bastante diferentes das SREs. Seja específico sobre a criação de painéis que façam sentido para as pessoas que consomem o conteúdo. Para cada conjunto de painéis, exibir os mesmos tipos de dados de forma consistente é valioso para a comunicação.

Você pode precisar fazer um gráfico de informações entre diferentes agregações de uma métrica – como tipo de máquina, versão do servidor ou tipo de solicitação – em tempo real. É uma boa ideia que sua equipe se sinta confortável em realizar detalhamentos para esta finalidade em seus dados. Ao fatiar seus dados de acordo com uma variedade de métricas, você pode procurar correlações e padrões nos dados quando precisar.

 
Dashboards para Gestão à Vista

 

Alertas

É útil ser capaz de classificar os alertas: várias categorias de alertas permitem respostas proporcionais. A capacidade de definir níveis de gravidade diferentes para alertas diferentes também é útil: você pode registrar um ticket para investigar uma taxa baixa de erros que dura mais de uma hora, enquanto uma taxa de erro de 100% é uma emergência que merece resposta imediata.

A funcionalidade de supressão de alertas permite que você evite ruídos desnecessários que distraiam os engenheiros de plantão. Por exemplo:

  • Quando todos os nós estão apresentando a mesma alta taxa de erros, você pode alertar apenas uma vez para a taxa de erro global, em vez de enviar um alerta individual para cada nó;
  • Quando uma de suas dependências de serviço tem um alerta de disparo (por exemplo, um back-end lento), você não precisa alertar para as taxas de erro de seu serviço.

Você também precisa ser capaz de garantir que os alertas não sejam mais suprimidos quando o evento terminar.

O nível de controle que você precisa sobre o seu sistema ditará se é melhor usar um serviço de monitoramento de terceiros ou implantar e executar seu próprio sistema de monitoramento. O Google desenvolveu seu próprio sistema de monitoramento internamente, mas existem muitos sistemas de monitoramento de código aberto e comerciais disponíveis.

 

Conclusão

Como a função do SRE é responsável pela confiabilidade dos sistemas em produção, os SREs muitas vezes precisam estar intimamente familiarizados com o sistema de monitoramento de um serviço e seus recursos. Sem esse conhecimento, os SREs podem não saber onde procurar, como identificar um comportamento anormal ou como encontrar as informações de que precisam durante uma emergência.

Esperamos que, ao apontar os recursos do sistema de monitoramento que consideramos úteis e por que, possamos ajudá-lo a avaliar o quão bem sua estratégia de monitoramento se adapta às suas necessidades, explorar alguns recursos adicionais que você pode aproveitar e considerar as alterações que você pode querer fazer. Você provavelmente achará útil combinar alguma fonte de métricas e registro em sua estratégia de monitoramento; a combinação exata de que você precisa é altamente dependente do contexto. Certifique-se de coletar métricas que atendam a um propósito específico. Essa finalidade pode ser permitir um melhor planejamento de capacidade, auxiliar na depuração ou notificá-lo diretamente sobre problemas.

Depois de estabelecer o monitoramento, ele precisa ser visível e útil. Para isso, também recomendamos testar sua configuração de monitoramento. Um bom sistema de monitoramento paga dividendos. Vale a pena investir muito para pensar nas soluções que melhor atendem às suas necessidades e para iterar até acertar.

 
Banner - Gerenciamento de TI e Infraestrutura

 
Caso você precise de ajuda para implementar uma boa solução de monitoramento e que atenda as especificidades do seu negócio, não hesite e entrar em contato com nossos especialistas. Possuímos quase 20 anos de experiência na monitoração de ambientes complexos, do sistema financeiro ao varejo.

Compartilhe:

Posts Relacionados

ASSINE NOSSA NEWSLETTER E RECEBA
NOSSOS MELHORES CONTEÚDOS!

Entre para nossa lista e receba conteúdos exclusivos