Metrics met Prometheus en Grafana
Stel Prometheus in om cluster- en applicatiemetrics te verzamelen en visualiseer deze met Grafana.
Metrics met Prometheus en Grafana is een gratis De basis van Kubernetes-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Kubernetes. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Kubernetes bevat in totaal 4 lessen.
De kracht van metrieken
Metrieken zijn numerieke metingen die de toestand en prestaties van je toepassingen en infrastructuur beschrijven. Zie ze als de vitale functies van je software!
Ze bieden waardevolle inzichten in:
- Prestaties: Hoe snel reageert je app?
- Brongebruik: Komt je server geheugen tekort?
- Beschikbaarheid: Is je service actief en beschikbaar voor gebruikers?
Door metrieken bij te houden, kun je trends begrijpen, afwijkingen detecteren en problemen proactief oplossen.
Maak kennis met Prometheus
Prometheus is een open-sourcebewakingssysteem dat is ontworpen voor betrouwbaarheid en schaalbaarheid. Het is een belangrijk hulpmiddel in de cloud-native stack voor observeerbaarheid.
De belangrijkste taken zijn:
- Ophalen: Metrieken verzamelen van geconfigureerde doelen (zoals je toepassingen).
- Opslaan: Deze metrieken opslaan in een database voor tijdreeksen.
- Bevragen: Je de mogelijkheid bieden vragen te stellen over de verzamelde gegevens.
Prometheus helpt je een duidelijk beeld te krijgen van wat er in je Kubernetes-cluster gebeurt.
Het model voor het 'scrapen' van Prometheus
Prometheus gebruikt een model waarbij het metrieken ophaalt. In plaats van dat toepassingen gegevens naar Prometheus sturen, haalt Prometheus actief metrieken bij hen op.
In het algemeen werkt dit als volgt:
- Je toepassing stelt metrieken beschikbaar op een specifiek HTTP-eindpunt (vaak
/metrics). - Prometheus is geconfigureerd met een lijst met doelen (zoals het IP-adres en de poort van je toepassing).
- Prometheus stuurt regelmatig een HTTP-aanvraag naar het
/metrics-eindpunt van elk doel. - Het doel antwoordt met de huidige metrieken, die Prometheus vervolgens opslaat.
Metrieken: sleutel-waardeparen
Prometheus slaat gegevens op als tijdreeksen: reeksen waarden met tijdstempels. Elke tijdreeks wordt uniek geïdentificeerd door een metrieknaam en een set sleutel-waardeparen die labels worden genoemd.
Voorbeeld: http_requests_total{method="GET", path="/api"}
Prometheus heeft de volgende basistypen metrieken:
- Teller: Een cumulatieve metriek die alleen toeneemt (bijvoorbeeld het totale aantal aanvragen).
- Meetwaarde: Een waarde die omhoog of omlaag kan gaan (bijvoorbeeld het huidige CPU-gebruik).
- Histogram/samenvatting: Voor het bemonsteren van waarnemingen en het tellen ervan in configureerbare bereiken (bijvoorbeeld aanvraagduren).
Je toepassingen metrieken laten 'spreken'
Om metrieken te kunnen ophalen, moet je toepassing ze beschikbaar stellen in een indeling die Prometheus begrijpt. Dit gebeurt meestal via een HTTP-eindpunt.
Veel programmeertalen hebben clientbibliotheken waarmee je eenvoudig meetinstrumentatie aan je code toevoegt:
- Tellers verhogen bij gebeurtenissen.
- Meetwaarden instellen voor huidige toestanden.
- Duren van bewerkingen meten.
We bekijken een heel eenvoudig voorbeeld van een app die een basisteller beschikbaar stelt.
Python-app die metrieken beschikbaar stelt
Hier is een kleine Python Flask-app die een eenvoudige telmetriek beschikbaar stelt. De app simuleert het tellen van paginaweergaven.
Voer deze code uit en probeer vervolgens /metrics te openen in je browser of terminal (ga na het uitvoeren bijvoorbeeld naar 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 in je cluster
In Kubernetes wordt Prometheus vaak efficiënt geïmplementeerd met de Prometheus Operator. Deze operator helpt bij het beheren van Prometheus-instanties en configuraties.
Belangrijke Kubernetes-resources voor Prometheus:
- ServiceMonitor: Geeft Prometheus aan *waar* metriek-eindpunten te vinden zijn (bijvoorbeeld welke Services en Pods moeten worden gescrapet).
- PodMonitor: Vergelijkbaar met ServiceMonitor, maar richt zich rechtstreeks op Pods.
Met deze resources kan Prometheus automatisch metrieken van je geïmplementeerde toepassingen detecteren en ophalen.
Grafana: de maestro van dashboards
Terwijl Prometheus metrieken verzamelt en opslaat, is Grafana het hulpmiddel bij uitstek om ze te visualiseren. Het is een open-source webtoepassing voor analyse en interactieve visualisatie.
Met Grafana kun je:
- Overzichtelijke en informatieve dashboards maken.
- Meerdere gegevensbronnen bevragen (zoals Prometheus).
- Waarschuwingen instellen op basis van drempelwaarden voor metrieken.
Het zet onbewerkte metriekgegevens om in bruikbare inzichten.
Grafana en Prometheus: een krachtig duo
Grafana slaat metriekgegevens niet zelf op; het vraagt gegevens op bij externe gegevensbronnen. Om je Kubernetes-metrieken te visualiseren, configureer je Prometheus als gegevensbron in Grafana.
Stappen:
- Voeg in Grafana een nieuwe gegevensbron toe.
- Selecteer "Prometheus" als type.
- Geef de URL van je Prometheus-server op.
- Begin dashboards te bouwen met de querytaal van Prometheus, PromQL!
Met deze combinatie houd je volledige controle over de bewaking van je cluster.
Test je kennis!
Tijd om te controleren of je Prometheus en Grafana begrijpt!
Samenvatting: metrieken en visualisatie
Goed gedaan! In deze les heb je geleerd over:
- Het belang van metrieken voor observeerbaarheid.
- Prometheus als krachtig systeem voor het ophalen en opslaan van metrieken als tijdreeksen.
- Hoe toepassingen metrieken beschikbaar stellen zodat Prometheus ze kan verzamelen.
- Grafana voor het maken van inzichtelijke dashboards en het visualiseren van je metriekgegevens.
Inzicht in deze hulpmiddelen is cruciaal om je Kubernetes-toepassingen gezond en performant te houden. Blijf ontdekken hoe je je eigen toepassingen van meetinstrumentatie voorziet!
Leer De basis van Kubernetes met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Metrics met Prometheus en Grafana” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Kubernetes, waaronder “Metrics met Prometheus en Grafana”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Kubernetes bevat in totaal 4 lessen.
Wat leer ik in “Metrics met Prometheus en Grafana”?
Stel Prometheus in om cluster- en applicatiemetrics te verzamelen en visualiseer deze met Grafana. Je oefent met De basis van Kubernetes door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met De basis van Kubernetes te beginnen?
Ervaring vooraf is niet nodig. De basis van Kubernetes op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Metrics met Prometheus en Grafana”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over De basis van Kubernetes?
Ja. Elke les over De basis van Kubernetes bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Logging met kubectl logs
- Metrics met Prometheus en Grafana
- Healthchecks: liveness- en readinessprobes
- Gedistribueerde tracing en events