A monitoring system for collecting and aggregating metrics from distributed clouds

Este artigo apresenta o design e a implementação de um sistema de monitoramento para nuvens distribuídas que coleta métricas em nível de máquina, contêiner e aplicação por meio de agentes, persiste esses dados no plano de controle e os disponibiliza via múltiplas APIs, incluindo agregação para fornecer uma visão abrangente do estado do sistema.

Tamara Ranković, Mateja Rilak, Janko Rakonjac, Miloš Simić

Publicado 2026-03-06
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que o "Computação em Nuvem" tradicional é como uma única, gigantesca e superlotada central de energia que abastece todo o país. Tudo o que você precisa (seus dados, seus aplicativos) é enviado para lá, processado e devolvido. O problema é que, se você estiver longe dessa central, a energia chega com atraso (latência) e, se a central ficar sobrecarregada, tudo para.

Para resolver isso, surgiu a Nuvem Distribuída (DC). Pense nela não como uma única central, mas como uma rede de pequenas usinas de energia temporárias que podem ser montadas e desmontadas rapidamente exatamente onde você precisa delas (perto de uma fábrica, de um carro autônomo ou de um hospital).

O problema é: como você sabe se essas pequenas usinas estão funcionando bem? Como você sabe se a energia está chegando? É aqui que entra o sistema de monitoramento descrito neste artigo.

Aqui está a explicação do trabalho, usando analogias do dia a dia:

1. O Problema: O "Chefe" precisa saber o que acontece na "Fábrica"

Quando você tem centenas dessas pequenas usinas (nós) espalhadas pelo mundo, mudando de lugar o tempo todo, é impossível para o "Chefe" (o sistema central de controle) saber o que está acontecendo em cada uma delas apenas olhando de longe. Se uma usina parar, o sistema precisa saber imediatamente para não deixar os clientes na escuridão.

2. A Solução: O Sistema de "Relatórios de Saúde"

Os autores criaram um sistema inteligente que funciona como um exército de inspetores de saúde e um centro de comando.

  • Os Inspetores (Agentes): Em cada pequena usina (nó), existe um pequeno robô (um "agente") que fica de olho em tudo. Ele verifica três coisas:

    1. A Máquina: A saúde do hardware (temperatura, memória, processador). É como verificar se o motor do carro está quente.
    2. O Contêiner: A saúde dos aplicativos rodando dentro da usina. É como verificar se a luz e a água estão funcionando nas casas da usina.
    3. O Aplicativo: O que o cliente está pedindo. Se o cliente criou um aplicativo especial, ele pode pedir para o inspetor verificar métricas específicas (ex: "quantas vendas fizemos agora?").
  • O Centro de Comando (Plano de Controle): Todos esses inspetores não ficam gritando dados o tempo todo. Eles esperam um momento específico (um "check-up de saúde") para enviar tudo de uma vez para o Centro de Comando. Isso economiza energia e evita congestionamento na estrada de dados.

3. Como os Dados Viajam: O "Passeio de Ônibus"

Em vez de cada inspetor fazer uma viagem separada para entregar um relatório, o sistema usa uma técnica inteligente chamada "piggybacking" (carona).

  • Imagine que o Centro de Comando envia um ônibus (um sinal de "estou vivo?") para as usinas.
  • Quando o ônibus chega, os inspetores sobem nele com seus relatórios de saúde.
  • Assim, o ônibus volta para o centro já carregado com todas as informações. Se o ônibus não voltar, o Centro sabe que aquela usina sumiu.

4. O Grande Quadro (Agregação)

O sistema não apenas guarda os dados de cada usina individualmente. Ele também faz a soma total.

  • Se você tem 100 usinas, o sistema calcula: "Quantos recursos temos disponíveis no total?" ou "Qual é a média de temperatura de toda a rede?".
  • Isso é como um gerente de rede de lojas que não quer saber apenas quanto vendeu a loja A, mas quanto vendeu a rede inteira para tomar decisões estratégicas.

5. Quem usa esses dados?

O sistema entrega esses dados de duas formas:

  • Para quem quer olhar o passado (API REST): Como um relatório impresso. Você pede: "Mostre-me a temperatura da usina X entre as 10h e as 11h".
  • Para quem precisa de tempo real (Streaming API): Como uma transmissão ao vivo. Você se inscreve em um canal e recebe os dados assim que eles acontecem. Isso é vital para carros autônomos ou sistemas que precisam reagir em milissegundos.

6. Por que isso é especial?

Muitos sistemas de monitoramento já existem (como o Prometheus), mas eles foram feitos para nuvens grandes e estáticas. O sistema criado por esta equipe é nativo para a Nuvem Distribuída.

  • Ele é leve: Não consome muita energia das usinas (que muitas vezes têm recursos limitados).
  • Ele é flexível: Aceita que as usinas apareçam e desapareçam o tempo todo.
  • Ele é aberto: Permite que qualquer pessoa defina o que quer medir.

Resumo Final

Pense neste trabalho como a criação de um sistema nervoso para uma nova forma de computação. Assim como seu corpo envia sinais de dor ou calor para o cérebro para que você possa agir, este sistema coleta sinais de todas as pequenas nuvens espalhadas pelo mundo e os entrega ao cérebro (o controlador) para que ele possa manter tudo funcionando perfeitamente, rápido e seguro.

Os autores já construíram o protótipo (chamado Constellations) e agora planejam testá-lo em cenários reais e adicionar alertas automáticos (como um alarme de incêndio) para quando algo der errado.