Istio provides a basic sample installation to quickly get Prometheus and Grafana up and running, bundled with all of the Istio dashboards already installed:
export ISTIO_RELEASE=$(echo $ISTIO_VERSION |cut -d. -f1,2)
# Install Prometheus
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-${ISTIO_RELEASE}/samples/addons/prometheus.yaml
# Install Grafana
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-${ISTIO_RELEASE}/samples/addons/grafana.yaml
We can now verify that they have been installed:
kubectl -n istio-system get deploy grafana prometheus
Open a new terminal tab and setup port-forwarding for Grafana by executing the following command
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 8080:3000
Open the Istio Dashboard via the Grafana UI
dashboard/db/istio-mesh-dashboard
Open a new terminal tab and use these commands to send a traffic to the mesh
export GATEWAY_URL=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
watch --interval 1 curl -s -I -XGET "http://${GATEWAY_URL}/productpage"
You will see that the traffic is evenly spread between reviews:v1 and reviews:v3
We encourage you to explore other Istio dashboards that are available by clicking the Istio Mesh Dashboard menu on top left of the page, and selecting a different dashboard.