Operation Guides
In order to generate performance test reports of service meshes and their workloads, Meshery uses Grafana
and/or Prometheus
as visualization and metrics systems, respectively. This document outlines the requirements necessary for Meshery to connect to these systems. Steps vary depending upon the service mesh and its configuration.
Istio + Minikube
In this scenario, Meshery has deployed Istio to a Kubernetes cluster running in Minikube. The service ports of Grafana and Prometheus need to be exposed in order for Meshery to connect to and interact with these visualization and metrics systems.
Get minikube ip
Retreive the IP address of your Minikube cluster by executing:
$ minikube ip
172.17.0.2
Note: Istio is installed in istio-system
namespace and the “BookInfo” sample app is installed in default
namespace unless otherwise specified upon deployment of “BookInfo”.
Expose Prometheus service
a) By default prometheus
service spec type is configured to ClusterIP
. You can change it to NodePort
by executing:
$ kubectl patch svc prometheus -p '{"spec": {"type": "NodePort"}}' -n istio-system
b) Get NodePort of prometheus
service by executing:
$ kubectl describe services prometheus -n istio-system|grep NodePort
NodePort: http 30535/TCP
c) Prometheus endpoint will be http://$MINIKUBE_IP:NODE_PORT
http://172.17.0.2:30822
Expose Grafana service
a) By default Grafana
spec type is configured to ClusterIP
you can change it to NodePort
by executing:
$ kubectl patch svc grafana -p '{"spec": {"type": "NodePort"}}' -n istio-system
b) Get NodePort of Grafana
service using below command
$kubectl describe services grafana -n istio-system|grep NodePort
o/p:NodePort: http 32130/TCP
c) Grafana endpoint will be http://$MINIKUBE_IP:NODE_PORT
http://172.17.0.2:32130
Expose Istio BookInfo sample app productpage
service
a) By default productpage
spec type is configured to ClusterIP
you can change it to NodePort
by executing:
$ kubectl patch svc grafana -p '{"spec": {"type": "NodePort"}}' -n book-info
b) Get NodePort of productpage
service by executing:
$ kubectl describe services productpage -n book-info|grep NodePort
NodePort: http 30535/TCP
c) productpage
endpoint will be http://$MINIKUBE_IP:NODE_PORT
http://172.17.0.2:30535/productpage
Linkerd
coming soon…