Visualizing Metrics with Grafana

This task shows you how to setup and use the Istio Dashboard to monitor meshtraffic. As part of this task, you will use the Grafana Istio add-on andthe web-based interface for viewing service mesh traffic data.

The Bookinfo sample application is used asthe example application throughout this task.

Before you begin

  • Install Istio in your cluster. If not enabled in your chosen configuration profile, enable the Grafana add-on —set values.grafana.enabled=true option.
  • Deploy Bookinfo application.

Viewing the Istio dashboard

  • Verify that the prometheus service is running in your cluster.

In Kubernetes environments, execute the following command:

  1. $ kubectl -n istio-system get svc prometheus
  2. NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. prometheus 10.59.241.54 <none> 9090/TCP 2m
  • Verify that the Grafana service is running in your cluster.

In Kubernetes environments, execute the following command:

  1. $ kubectl -n istio-system get svc grafana
  2. NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. grafana 10.59.247.103 <none> 3000/TCP 2m
  • Open the Istio Dashboard via the Grafana UI.

In Kubernetes environments, execute the following command:

  1. $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &

Visit http://localhost:3000/dashboard/db/istio-mesh-dashboard in your web browser.

The Istio Dashboard will look similar to:

Istio Dashboard

Istio Dashboard

  • Send traffic to the mesh.

For the Bookinfo sample, visit http://$GATEWAY_URL/productpage in your webbrowser or issue the following command:

  1. $ curl http://$GATEWAY_URL/productpage

$GATEWAY_URL is the value set in the Bookinfo example.

Refresh the page a few times (or send the command a few times) to generate asmall amount of traffic.

Look at the Istio Dashboard again. It should reflect the traffic that wasgenerated. It will look similar to:

Istio Dashboard With Traffic

Istio Dashboard With Traffic

This gives the global view of the Mesh along with services and workloads in the mesh.You can get more details about services and workloads by navigating to their specific dashboards as explained below.

  • Visualize Service Dashboards.

From the Grafana dashboard’s left hand corner navigation menu, you can navigate to Istio Service Dashboard or visithttp://localhost:3000/dashboard/db/istio-service-dashboard in your web browser.

The Istio Service Dashboard will look similar to:

Istio Service Dashboard

Istio Service Dashboard

This gives details about metrics for the service and then client workloads (workloads that are calling this service)and service workloads (workloads that are providing this service) for that service.

  • Visualize Workload Dashboards.

From the Grafana dashboard’s left hand corner navigation menu, you can navigate to Istio Workload Dashboard or visithttp://localhost:3000/dashboard/db/istio-workload-dashboard in your web browser.

The Istio Workload Dashboard will look similar to:

Istio Workload Dashboard

Istio Workload Dashboard

This gives details about metrics for each workload and then inbound workloads (workloads that are sending request tothis workload) and outbound services (services to which this workload send requests) for that workload.

About the Grafana add-on

The Grafana add-on is a preconfigured instance of Grafana. The base image(grafana/grafana:5.2.3) has beenmodified to start with both a Prometheus data source and the Istio Dashboardinstalled. The base install files for Istio, and Mixer in particular, ship witha default configuration of global (used for every service) metrics. The IstioDashboard is built to be used in conjunction with the default Istio metricsconfiguration and a Prometheus backend.

The Istio Dashboard consists of three main sections:

  • A Mesh Summary View. This section provides Global Summary view of the Mesh and shows HTTP/gRPC and TCPworkloads in the Mesh.

  • Individual Services View. This section provides metrics about requests andresponses for each individual service within the mesh (HTTP/gRPC and TCP).This also provides metrics about client and service workloads for this service.

  • Individual Workloads View: This section provides metrics about requests andresponses for each individual workload within the mesh (HTTP/gRPC and TCP).This also provides metrics about inbound workloads and outbound services for this workload.

For more on how to create, configure, and edit dashboards, please see theGrafana documentation.

Cleanup

  • Remove any kubectl port-forward processes that may be running:
  1. $ killall kubectl
  • If you are not planning to explore any follow-on tasks, refer to theBookinfo cleanup instructionsto shutdown the application.

See also

Visualizing Your Mesh

This task shows you how to visualize your services within an Istio mesh.

Mixer and the SPOF Myth

Improving availability and reducing latency.

Mixer Adapter Model

Provides an overview of Mixer's plug-in architecture.

Collecting Logs

This task shows you how to configure Istio to collect and customize logs.

Collecting Metrics

This task shows you how to configure Istio to collect and customize metrics.

Collecting Metrics for TCP services

This task shows you how to configure Istio to collect metrics for TCP services.