Prometheus: storia di come si diventa uno standard de facto

04/10/2023

Zurigo, 2012Julius Volz lavora per Google. Contemporaneamente a Berlino un’emergente startup fa capolino nel panorama della musica, il suo nome è SoundCloud.

SoundCloud sembra il perfetto ambiente dinamico per creare qualcosa di fortemente innovativo, così Julius decide di unirsi a loro.

L’architettura in SoundCloud è già fortemente dinamica e orientata alla frammentazione in microservizi, sebbene Docker e Kubernetes sarebbero arrivati molto più tardi. Si sperimentano però i primi problemi di resilienza dei servizi web e di latenza, oltretutto i tool di monitoraggio utilizzati non sono in grado di provvedere con la giusta granularità di osservazione.

StatsD e Graphite, all’epoca, sono i principali tool di monitoring utilizzati, ma la loro integrazione risulta complicata e non si può realmente usare per produrre ad esempio allarmi. Inoltre, il database di Graphite non è propriamente strutturato per volumi dinamici e si rischia di perdere picchi di breve durata ma frequenti.

In un mondo governato dal dinamismo diventa necessario un prodotto che integri alla perfezione timeseries e alerting, con un data model flessibile e un query language innovativo per poter interrogare ed estrarre valore dai dati.

Cercando nel panorama opensource, Volz, ottiene solo risultati deludenti, così la decisione è presa: rimboccarsi le maniche e creare qualcosa che ancora non esiste.

Fine 2012, Nasce il progetto Open Source Prometheus!

Nel 2016 arriva poi la promozione all’interno della CNCF, come secondo progetto incubato dopo Kubernetes, affermandosi come standard de facto proprio per piattaforme di observability e telemetry per ambienti cloud native.

Ma cosa ha reso Prometheus davvero speciale?

La completa devozione al concetto di metriche e la ricerca di assoluta profondità in termini di visibilità e osservabilità. Tutto intorno ai seguenti concetti:

  • Un modello di dati multidimensionale con timeseries identificati per nome della metrica e coppie chiave/valore.
  • PromQL, un linguaggio di interrogazione flessibile per sfruttare questa dimensionalità.
  • Nessuna dipendenza da storage distribuito; i nodi del singolo server sono autonomi.
  • La raccolta di timeseries avviene tramite un modello di estrazione tramite HTTP.
  • Il caricamento di timeseries è supportato tramite un gateway
  • target sono scoperti tramite discovery del servizio o configurazione statica.
  • Supporto per molteplici modalità di grafici e creazione di dashboard.

A livello architetturale il tutto si traduce come segue:

  • Il server principale di Prometheus, che raccoglie e archivia dati di serie temporali.
  • Librerie client per strumentare il codice delle applicazioni.
  • Un gateway di push per supportare short-live job.
  • Exporter specializzati per servizi come HAProxy, StatsD, Graphite, ecc.
  • Alertmanager per gestire gli avvisi.
  • Integrazioni terze parti varie ed eterogenee

In Vista Technology conosciamo bene il valore di questo strumento e lo abbiamo reso il cuore pulsante di tutte le nostre soluzioni di observability e monitoring.

Un tool naturalmente pensato per offrire resilienza e fornire ai nostri clienti il punto centrale da consultare non appena ci sono problemi e il più veloce strumento per effettuare un rapido troubleshooting ed essere prontamente allarmati in caso di necessità. Il tutto pensato per ambienti altamente dinamici ma anche altamente eterogenei, grazie proprio alla possibilità di poter creare facili customizzazioni (Exporter) per estrapolare metriche da qualsiasi oggetto presente in architettura, nonché correlare tali dati per fornire valore aggiunto.

  • Il server principale di Prometheus, che raccoglie e archivia dati di serie temporali.
  • Librerie client per strumentare il codice delle applicazioni.
  • Un gateway di push per supportare short-live job.
  • Exporter specializzati per servizi come HAProxy, StatsD, Graphite, ecc.
  • Alertmanager per gestire gli avvisi.
  • Integrazioni terze parti varie ed eterogenee

In Vista Technology conosciamo bene il valore di questo strumento e lo abbiamo reso il cuore pulsante di tutte le nostre soluzioni di observability e monitoring.

Un tool naturalmente pensato per offrire resilienza e fornire ai nostri clienti il punto centrale da consultare non appena ci sono problemi e il più veloce strumento per effettuare un rapido troubleshooting ed essere prontamente allarmati in caso di necessità. Il tutto pensato per ambienti altamente dinamici ma anche altamente eterogenei, grazie proprio alla possibilità di poter creare facili customizzazioni (Exporter) per estrapolare metriche da qualsiasi oggetto presente in architettura, nonché correlare tali dati per fornire valore aggiunto.