Architecture
This describes the runtime view of the setup:
The setup is as follows:
-
minikube runs a virtual machine.
-
Via a configured ingress, a local browser can access different services running in minikube like Keycloak and Grafana.
-
Keycloak connects to a PostgreSQL database running inside minikube.
-
The PostgreSQL database inside minikube is accessible via a node port from the host.
-
Prometheus collects metrics, and Jaeger collects traces.
-
Promtail collects logs and sends it to Loki which stores them.
-
Gatling can run locally and send Graphite metrics via a node port to a collector inside minikube.
-
Jaeger collects traces from Keycloak running inside minikube, and can also receive traces from a locally running test application.
-
Cryostat can connect to Keycloak instances and create Java Flight Recorder (JFR) recordings.
Logs, traces and metrics are stored within minikube for 7 days = 168 hours.
This can be overwritten by adding in an .env
file with the setting KB_RETENTION=XXh
to change it to a different value.
Currently, Jaeger requires this to be set in hours, as it doesn’t understand this to be set in days.