0Pricing
DevOps Bootcamp · Lezione

Metriche con Prometheus e Grafana

Configuri Prometheus per raccogliere le metriche del cluster e delle applicazioni e le visualizzi con Grafana.

Metriche con Prometheus e Grafana è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

La potenza delle metriche

Le metriche sono misurazioni numeriche che descrivono lo stato e le prestazioni delle applicazioni e dell'infrastruttura. Le consideri come i parametri vitali del software!

Forniscono informazioni preziose su:

  • Prestazioni: con quale velocità risponde l'applicazione?
  • Utilizzo delle risorse: il server sta esaurendo la memoria?
  • Disponibilità: il servizio è attivo e funzionante per gli utenti?

Monitorando le metriche, può comprendere le tendenze, rilevare anomalie e risolvere i problemi in modo proattivo.

Alla scoperta di Prometheus

Prometheus è un sistema di monitoraggio open source progettato per garantire affidabilità e scalabilità. È uno strumento fondamentale dello stack di osservabilità cloud-native.

Le sue funzioni principali sono:

  • Raccogliere: acquisire le metriche dagli obiettivi configurati, come le applicazioni.
  • Archiviare: salvare le metriche in un database di serie temporali.
  • Interrogare: consentire di porre domande sui dati raccolti.

Prometheus La aiuta a ottenere un quadro chiaro di ciò che accade all'interno del cluster Kubernetes.

Il modello di "scraping" di Prometheus

Prometheus usa un modello "pull" per raccogliere le metriche. Invece di inviare i dati a Prometheus, sono le applicazioni a essere attivamente sottoposte a "scraping", ovvero Prometheus ne recupera le metriche.

In generale, il funzionamento è il seguente:

  1. L'applicazione espone le metriche su un endpoint HTTP specifico (spesso /metrics).
  2. Prometheus viene configurato con un elenco di obiettivi, come l'indirizzo IP e la porta dell'applicazione.
  3. A intervalli regolari, Prometheus invia una richiesta HTTP all'endpoint /metrics di ogni obiettivo.
  4. L'obiettivo risponde con le metriche correnti, che Prometheus archivia.

Metriche: coppie chiave-valore

Prometheus archivia i dati come serie temporali: flussi di valori associati a una marca temporale. Ogni serie temporale è identificata in modo univoco dal nome di una metrica e da un insieme di coppie chiave-valore chiamate labels.

Esempio: http_requests_total{method="GET", path="/api"}

Prometheus dispone dei seguenti tipi di metriche fondamentali:

  • Counter: una metrica cumulativa che aumenta soltanto (ad esempio, il numero totale di richieste).
  • Gauge: un valore che può aumentare o diminuire (ad esempio, l'utilizzo corrente della CPU).
  • Histogram/Summary: per campionare le osservazioni e conteggiarle in intervalli configurabili (ad esempio, la durata delle richieste).

Far "parlare" le applicazioni tramite le metriche

Affinché Prometheus possa raccogliere le metriche, l'applicazione deve esporle in un formato comprensibile per Prometheus. Di solito questa operazione viene eseguita tramite un endpoint HTTP.

Molti linguaggi di programmazione dispongono di librerie client che semplificano l'aggiunta della strumentazione al codice:

  • Incrementare i counter in corrispondenza degli eventi.
  • Impostare i gauge per gli stati correnti.
  • Osservare la durata delle operazioni.

Vediamo un esempio molto semplice di un'applicazione che espone una metrica counter di base.

Un'applicazione Python che espone le metriche

Ecco una piccola applicazione Python Flask che espone una semplice metrica counter. Simula il conteggio delle visualizzazioni di pagina.

Esegua questo codice, quindi provi ad accedere a /metrics dal browser o dal terminale (ad esempio, dopo l'esecuzione visiti http://localhost:5000/metrics).

from flask import Flask
from prometheus_client import Counter, generate_latest
import time

app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')

@app.route('/')
def hello():
    c.inc() # Increment the counter
    return "Hello, CoddyKit!"

@app.route('/metrics')
def metrics():
    return generate_latest().decode('utf-8')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Prometheus nel cluster

In Kubernetes, per distribuire Prometheus in modo efficiente si usa spesso Prometheus Operator. Questo operator aiuta a gestire le istanze e le configurazioni di Prometheus.

Risorse Kubernetes fondamentali per Prometheus:

  • ServiceMonitor: indica a Prometheus *dove* trovare gli endpoint delle metriche (ad esempio, quali Services e Pod sottoporre a scraping).
  • PodMonitor: è simile a ServiceMonitor, ma punta direttamente ai Pod.

Queste risorse consentono a Prometheus di rilevare automaticamente le applicazioni distribuite e raccoglierne le metriche.

Grafana: il maestro delle dashboard

Mentre Prometheus raccoglie e archivia le metriche, Grafana è lo strumento di riferimento per visualizzarle. È un'applicazione web open source per l'analisi e la visualizzazione interattiva.

Grafana consente di:

  • Creare dashboard esteticamente curate e informative.
  • Interrogare più origini dati, come Prometheus.
  • Configurare avvisi basati sulle soglie delle metriche.

Trasforma i dati grezzi delle metriche in informazioni utili per agire.

Grafana e Prometheus: una coppia potente

Grafana non archivia direttamente i dati delle metriche; esegue query sulle origini dati esterne. Per visualizzare le metriche di Kubernetes, configurerà Prometheus come origine dati in Grafana.

Procedura:

  1. In Grafana, aggiunga una nuova origine dati.
  2. Selezioni "Prometheus" come tipo.
  3. Inserisca l'URL del server Prometheus.
  4. Inizi a creare dashboard usando il linguaggio di query di Prometheus, PromQL!

Questa combinazione Le offre il pieno controllo sul monitoraggio del cluster.

Metta alla prova le Sue conoscenze!

È il momento di verificare la Sua comprensione di Prometheus e Grafana!

Riepilogo: metriche e visualizzazione

Ottimo lavoro! In questa lezione ha appreso:

  • L'importanza delle metriche per l'osservabilità.
  • Prometheus come potente sistema per raccogliere e archiviare metriche di serie temporali.
  • Come le applicazioni espongono le metriche affinché Prometheus possa raccoglierle.
  • Grafana per creare dashboard informative e visualizzare i dati delle metriche.

Comprendere questi strumenti è fondamentale per mantenere le applicazioni Kubernetes integre e performanti. Continui a esplorare come aggiungere la strumentazione alle Sue applicazioni!

Domande Frequenti

La lezione «Metriche con Prometheus e Grafana» è gratuita?

Sì — il testo completo di «Metriche con Prometheus e Grafana» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Metriche con Prometheus e Grafana»?

Configuri Prometheus per raccogliere le metriche del cluster e delle applicazioni e le visualizzi con Grafana. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Metriche con Prometheus e Grafana»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Logging con kubectl logs
  2. Metriche con Prometheus e Grafana
  3. Controlli di salute: probe di liveness e readiness
  4. Tracing distribuito ed eventi
← Torna a DevOps Bootcamp