1. What is Kiali?
Kiali provides answers to the questions: What are the microservices in my Istio service mesh, and how are they connected?
A Microservice Architecture breaks up the monolith into many smaller pieces that are composed together. Patterns to secure the communication between services like fault tolerance (via timeout, retry, circuit breaking, etc.) have come up as well as distributed tracing to be able to see where calls are going.
A service mesh can now provide these services on a platform level and frees the application writers from those tasks. Routing decisions are done at the mesh level.
Kiali works with Istio, in OpenShift or Kubernetes, to visualize the service mesh topology, to provide visibility into features like circuit breakers, request rates and more. It offers insights about the mesh components at different levels, from abstract Applications to Services and Workloads.
Kiali also includes Jaeger Tracing to provide distributed tracing out of the box.
2. What does it do?
2.1. Graph View
Kiali provides an interactive graph view of your namespace in real time, being able to display the interactions at several levels (applications, versions, workloads), with contextual information and charts on the selected graph node or edge.
The Applications menu entry shows all the applications running in our environment.
Kiali provides detailed information related to the application, such as its health or the list of its workloads. The health summary comes with detailed information of multiple indicators in a tooltip.
Kiali also displays Istio metrics associated with an application.
The Workloads menu entry shows the list of workloads with their health, error rate and labels validations.
By selecting a workload, the related information is displayed along with the associated pods and services.
The Services menu entry shows the list of services with their health and error rate.
When selecting a single service, its details page includes service ip, ports, endpoints, workloads, destination rules, virtual services and more details.
Inbound/outbound metrics are displayed for this service and a more detailed view is available in a linked Grafana dashboard.
2.5. Istio Config
The Istio Config menu entry displays a list of all of the available Istio configuration objects that exist in the user’s environment.
You can inspect the configuration yaml around a specific Istio object.
Kiali will highlight configuration errors.
2.6. Distributed Tracing
Clicking on Distributed Tracing menu item will open a new tab with the Jaeger UI for tracing services.