Por: opservices em 28.09.2021
Este artigo foi orginalmente publicado no Blog da OpSDis e foi escrito por Anders Hääl. O link da publicação original pode ser acessada aqui. Esta é uma tradução livre e alguns conceitos foram tropicalizados para melhor entendimento.
Temos recebidos muitas dúvidas de nossos clientes relacionados a diferença entre monitoramento baseado em checagens e monitoramento baseado métricas e qual deles seria a melhor escolha. Nesse artigo vamos solucionar suas dúvidas relacionadasaos dois métodos e vamos te explicar qual o melhor entre eles.
Qual é a diferença entre os dois tipos de monitorações?
Os sistemas baseados em checagens normalmente são os construídos na forma clássica do OpMon ou Op5 e as verificações encapsuladas em plug-ins. Um plug-in é um programa/script executado em algum intervalo pelo sistema e geralmente deve implementar três camadas:
1) Acesso ao sistema remoto sujeito a monitoramento;
2) Analise e formatação dos dados do sistema remoto;
3) Determinação dos dados do sistema, se estão OK ou em mau estado (definido como AVISO ou CRÍTICO).
Portanto, quem determina a saúde do sistema instrumentado é o plug-in e não o software de monitoramento. Isso significa que o plug-in determina o estado dos dados/métricas coletados no momento, sem qualquer histórico dessa métrica ou com quaisquer relações com outras métricas coletadas de outros plug-ins. Essa abordagem sem estado torna o design do plug-in simples, mas não traz um embasamento para determinar se a saúde é boa ou ruim.
Como exemplo, podemos citar a medição da utilização da CPU: o plug-in determina se a utilização da CPU é boa ou ruim a partir de uma única métrica que é o tempo. Quando o percentual atinge 90% o estado é considerado crítico, pois ele infere que um aplicativo em execução no servidor não executa a carga de trabalho esperada.
O sistema típico baseado em OpMon/Op5 pode suprimir o estado por uma série de intervalos de verificação, normalmente definidos como estados SOFT vs HARD, mas ainda assim permanece o fato de que o escopo do plug-in é limitado ao tempo e em relação a outros tipos de métricas. Vale salientar que é propósito da maioria dos sistemas baseados em checagens é gerenciar alarmes e notificações, não coletar métricas.
Nos sistemas baseados em métricas, alarmes e notificações são apenas um aspecto do sistema. O foco maior é em coletar métricas e permitir meios de consulta a essas métricas, e ai se encontra a grande diferença. Quando um sistema é baseado em métricas, precisamos de maneiras de coletar essas métricas. Já com o Prometheus, os aplicativos de forma nativa já exibem suas métricas ou podem ser criados exportadores para coleta-los e depois transformá-las no formato de exposição padrão do Prometheus ou Open metrics. O próprio exportador não aplica nenhuma lógica que determine se a métrica é "boa ou ruim" para determinar se um alarme deve ser acionado, essa tarefa é responsabilidade da plataforma, completamente separada da coleta de métricas.
Com uma plataforma baseada em métricas, utilizamos uma linguagem de consulta para agregar e combinar diferentes métricas ao longo de algum período de tempo para compará-las com os limites já definidos. Esta é uma separação clara de preocupações entre coletar métricas e operar com base nas métricas.
Assim, em sistemas como Prometheus, InfluxData e Elastic temos armazenamento de métricas que podem ser consultadas sem nenhum conhecimento prévio de como foram coletadas. Isso significa que, com um sistema baseado em métricas, os alarmes e notificações são apenas um caso de uso. Análise de tendências, planejamento de capacidade, análise de problemas, visualização e etc, são outras áreas, todas aplicadas nas mesmas métricas armazenadas. Com um sistema como o Influx, também podemos guardar eventos e logs de armazenamento do Elastic e, com uma ferramenta como o Grafana, podemos combinar todas as fontes diferentes de uma maneira visual.
Os sistemas baseados em checagens existentes não são mais úteis?
De um sistema baseado em métricas é possível sim, usar um sistema baseado em checagens como fonte de métricas. Na Opdis são desenvolvidas uma série de ferramentas que extraem métricas de sistemas baseados em checagens. Ferramentas como monitor-exporter, icinga-exporter e monitor2influx, para que as organizações não percam seus investimentos já realizados e ainda tenham uma maneira de começar com um sistema baseado em métricas como um complemento e um caminho a seguir.
No final das contas não é a escolha de ferramentas que o tornará bem sucedido. Muitas empresas se concentram nas ferramentas, enquanto deveriam se concentrar na estratégia e na cultura de observabilidade. A questão não é Influx, Prometheus, Elastic, Loki ou qualquer outra coisa, é o que você aprende como eles e que se encaixa em sua pilha de observabilidade.
O mais importante quando você começa a fazer uso de ferramentas de baseadas em métricas é o design de suas métricas e o modelo de evento, porque as tags, rótulos e chaves são importantes. Elas são a base para se combinar e agregar diferentes métricas e eventos de uma forma consistente para atingir a capacidade de observação e gerar insights.