Im Rahmen meiner Bachelorarbeit habe ich mit mit dem Thema "Metriken zur Überwachung von Betriebsdaten und Nutzungscharakteristiken für Microservice Architekturen" beschäftigt. Im Zuge dieser Arbeit wurden verschiedene Metriken für ein Produkt aus einer Firma erstellt. Als Lehrbeispiel soll dieses Projekt dienen, damit man einen kurzen Einblick bekommt, wie Metriken in einer Docker-Umgebung abgefragt werden können. Das Lehrbeispiel besteht aus 3 Projekten, einem ReverseProxy, Prometheus und Grafana. Zusätzlich kamen node-exporter und cAdvisor zum Einsatz. Die drei Projekte:
- Frontend
- Backend-Fibonacci
- Backend-Primzahlen
sind nur dazu da bestimmte Metriken und Last auf den Containern zu erzeugen. Die beiden Backends sind in Spring-Boot geschrieben, das Frontend mit Angular.
- Eine eingerichtete Docker-Umgebung, siehe folgende Installations-Anleitung Centos-Docker, Debian-Docker, Fedora-Docker, Ubuntu-Docker
- Node.js, siehe folgende Installations-Anleitung NodeJS
- npm (Node Package Manager), siehe folgende Installations-Anleitung npm
- maven, siehe folgende Installataions-Anleitung maven
Zur Installation muss das Skript ./initalSetup.sh ausgeführt werden. Mit -i= können die Projekte ausgesucht werden, für die ein neues Docker-Image gebaut werden soll. Folgende stehen zur Verfügung:
- reverseproxy
- frontend
- prim
- fibonacci
- prometheus
Wenn kein Projekt angegeben wird, werden alle Docker-Images neu gebaut.
Alle Docker-Images neu bauen:
sudo ./initialSetup.sh
Prometheus-Image neu bauen:
sudo ./initialSetup.sh -i=prometheus
Image für beide Backends neu bauen:
sudo ./initialSetup.sh -i=prim -i=fibonacci
Um die Umgebung zu starten muss nur der Befehl docker-compose up im Main Directory ausgeführt werden.
Auf das Frontend kann über localhost zugegegriffen werden. Dort können Primzahlen und Fibonaccizahlen bis zu einem eingegebenen Limit berechnet werden. Die Berechnung übernehmen die jeweiligen Backend Services. Über localhost:9090 kann auf die Prometheus Oberfläche zugegriffen werden.
Für das Beispiel wurde ein Grafana Dashboard bereits angelegt. Grafana erreicht man mit localhost:3000, als Data Source muss hier Prometheus ausgewählt werden. Dafür muss nur die URL auf http://prometheus:9090 gesetzt werden. Anschließend kann ein neues Dashboard importiert werden. Dafür die dashboard.json importieren (Schaltfläche Upload .json file in Grafana)