You can install Prometheus operator via Helm (install Helm):
kubectl create namespace monitoring
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring
If Istio/Jaeger tools are not necessary, to get metrics from µBench services it is necessary to deploy the Prometheus µBench PodMonitor
with
kubectl apply -f ./mub-monitor.yaml
To expose Prometheus server as NodePort service on port 30000
use
kubectl apply -f ./prometheus-nodeport.yaml -n monitoring
To expose Grafana server as NodePort service on port 30001
use
kubectl apply -f ./grafana-nodeport.yaml -n monitoring
Grafana admin
password is prom-operator
or can be obtained with
kubectl get secret prometheus-grafana -o jsonpath="{.data.admin-password}" -n monitoring | base64 --decode ; echo
Istio service mesh can be included in the cluster for deeper monitoring.
To install Istio we used Helm:
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
kubectl create namespace istio-system
helm install istio-base istio/base -n istio-system
helm install istiod istio/istiod -n istio-system --set global.proxy.tracer="zipkin" --wait
helm install istio-ingressgateway istio/gateway -n istio-system
kubectl label namespace default istio-injection=enabled
To expose Istio metrics to Prometheus it is necessary to add Prometheus PodMonitor and ServiceMonitor:
kubectl apply -f istio-prometheus-operator.yaml
Istio may use Metrics merging, therefore the µBench metrics can be shown two times, even though with different 'job' labels. To avoid this, in presence of Istio, we have avoided to run install the µBench PodMonitor.
Jaeger can be used to monitoring a µBench application at trace-level. Istio is integrated with Jaeger, therefore to get Jaeger up and running it is enough to install Istio and then use the following Istio addon.
kubectl apply -f jaeger.yaml
To expose Jaeger service as NodePort Service on port 30002 (HTTP) use
kubectl apply -f jaeger-nodeport.yaml
kiali can be used as Istio dashboard. To install kiali, you can hese helm as follows:
helm repo add kiali https://kiali.org/helm-charts
helm repo update
helm install \
-f kiali-values.yaml \
kiali-server \
kiali/kiali-server
then use the next commands that expose kiali as NodePort on port 30003
kubectl apply -f kiali-nodeport.yaml