A monitoring system for collecting and aggregating metrics from distributed clouds

Questo articolo presenta la progettazione e l'implementazione di un sistema di monitoraggio che raccoglie, aggrega e rende accessibili tramite diverse API metriche a livello di macchina, container e applicazione da cloud distribuiti, garantendo la necessaria osservabilità per il loro funzionamento in scenari reali.

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

Pubblicato 2026-03-06
📖 4 min di lettura☕ Lettura da pausa caffè

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

Immagina di avere un'azienda che gestisce un'enorme quantità di dati in tempo reale, come il traffico di migliaia di auto a guida autonoma o i sensori di una fabbrica intelligente. In passato, per gestire tutto questo, si usava un unico "cervello" centrale (il Cloud tradizionale) molto lontano. Ma inviare tutti i dati lì e aspettare risposte era troppo lento, come se dovessi chiamare un amico dall'altra parte del mondo per decidere se accendere il semaforo.

Per risolvere questo, è nato il concetto di Cloud Distribuito (DC). Immaginalo non come un unico grande cervello, ma come una rete di piccoli cervelli locali (nodi) sparsi un po' ovunque, vicini a dove i dati vengono creati. Questi piccoli cervelli possono essere creati e distrutti in base alle necessità, proprio come se potessi assemblare e smontare un team di lavoro al volo.

Il Problema: "Ma cosa sta succedendo?"

Il problema di questi piccoli cervelli locali è: come facciamo a sapere se stanno lavorando bene? Se uno si blocca, se è troppo affollato o se si sta surriscaldando, dobbiamo saperlo subito. È qui che entra in gioco il sistema descritto in questo articolo: un sistema di monitoraggio.

Pensalo come un sistema di telecamere e reportistica per questi piccoli cervelli.

Come funziona il sistema (La Metafora del "Controllore di Treno")

Il sistema proposto dagli autori funziona su tre livelli, come se fosse un'azienda di trasporti:

  1. Gli Agenti (I Controllori di Treno):
    Su ogni singolo "cervello" (nodo) c'è un piccolo assistente chiamato Agente. Il suo lavoro è raccogliere tre tipi di informazioni:

    • Livello Macchina: Come sta il "motore" del computer? (CPU, memoria, temperatura).
    • Livello Contenitore: Come stanno i "pacchi" (i programmi) che il computer sta trasportando?
    • Livello Applicazione: Cosa dicono i passeggeri? (I dati specifici che l'applicazione vuole condividere).
      L'Agente raccoglie questi dati e li tiene in una "scatola temporanea" sul computer locale.
  2. Il Protocollo di Salute (Il Fischio del Controllore):
    Invece di far chiamare continuamente il computer centrale per chiedere "Come stai?", il sistema usa un metodo più intelligente. Il computer centrale (la Piazza di Comando) invia un semplice segnale: "Ehi, sei vivo?" (un ping).
    Quando il computer locale risponde "Sì, sono vivo!", allega anche la sua scatola temporanea con i dati raccolti.

    • Perché farlo così? È come se il controllore di treno, invece di fermare ogni treno per chiedere i dati, aspettasse che il treno gli faccia un cenno di saluto e gli passi i dati mentre passa. Risparmia tempo e risorse!
  3. La Piazza di Comando (Il Centro di Controllo):
    Qui arrivano tutti i dati. Un sistema centrale li salva, li organizza e li rende disponibili.

    • Aggregazione: Se hai 100 piccoli cervelli, il sistema non ti mostra solo 100 liste separate, ma ti dice: "Ehi, il tuo intero gruppo di cervelli sta usando il 70% della potenza totale". È come guardare la mappa del traffico di tutta la città invece di guardare ogni singola auto.
    • Accesso: Chiunque (un programmatore, un'auto autonoma, un'intelligenza artificiale) può chiedere questi dati in tempo reale tramite delle "finestre" digitali (API). Possono chiedere dati specifici o abbonarsi a un flusso continuo, come se si abbonassero a un canale TV che trasmette solo lo stato di salute dei computer.

Perché è speciale?

La maggior parte dei sistemi di monitoraggio esistenti sono pesanti e pensati per grandi data center statici. Questo sistema, invece, è nato per il Cloud Distribuito, che è:

  • Dinamico: I computer arrivano e vanno via continuamente.
  • Leggero: I computer locali hanno poche risorse, quindi il sistema di monitoraggio non deve pesare come un macigno, ma deve essere agile come una farfalla.
  • Flessibile: Se vuoi monitorare qualcosa di nuovo, puoi dirlo al sistema e lui si adatta.

In sintesi

Gli autori hanno costruito un sistema nervoso per queste nuove reti di computer distribuiti. Invece di avere un unico grande cervello che controlla tutto da lontano, hanno creato una rete dove ogni piccolo nodo si auto-monitora e riferisce al centro solo quando necessario, in modo intelligente e veloce.

Questo permette di gestire sistemi complessi (come le città intelligenti o le fabbriche del futuro) senza che il sistema di controllo diventi un collo di bottiglia, garantendo che tutto funzioni in tempo reale, sicuro ed efficiente.