This example demonstrates how to obtain uniform metrics, logs, traces across different services using Istio Mixer and Istio sidecar.
Deploying a microservice-based application in an Istio service mesh allows one to externally control service monitoring and tracing, request (version) routing, resiliency testing, security and policy enforcement, etc., in a consistent way across the services, for the application as a whole.
In this example, we will use the Bookinfo sample application to show how operators can obtain uniform metrics and traces from running applications involving diverse language frameworks without relying on developers to manually instrument their applications.
Before you begin
Install the Istio control plane by following the instructions corresponding to your platform installation guide.
Run the Bookinfo sample application by following the applicable application deployment instructions.
Collecting metrics This task will configure Mixer to collect a uniform set of metrics across all services in the Bookinfo application.
Querying metrics This task installs the Prometheus add-on for metrics collection and demonstrates querying a configured Prometheus server for Istio metrics.
Distributed tracing We will now use Istio to trace how requests are flowing across services in the application. Distributed tracing speeds up troubleshooting by allowing developers to quickly understand how different services contribute to the overall end-user perceived latency. In addition, it can be a valuable tool to diagnosis and troubleshooting in distributed applications.
Using the Istio Dashboard This task installs the Grafana add-on with a preconfigured dashboard for monitoring mesh traffic.
When you’re finished experimenting with the Bookinfo sample, you can uninstall it by following the Bookinfo cleanup instructions corresponding to your environment.
This task shows you how to configure Istio to collect metrics and logs.
This task shows you how to configure Istio to collect metrics for TCP services.
How to configure the proxies to send tracing requests to Zipkin or Jaeger.
This task shows you how to configure Istio to log to a Fluentd daemon.
This task shows you how to query for Istio Metrics using Prometheus.
Improving availability and reducing latency.