Kiali Mid-Sprint Bonus — Service Graph
We’re in the middle of sprint 12 for the Kiali project and it’s going well. Kiali is a project for observing your Istio-based service meshes on Kubernetes or OpenShift. In the last several sprints we have done a lot of cool stuff with the graph, adding new graph types, service injection, and lots of work to improve the user experience. I’m not going to go into all of it because Mazz already has a nice blog for you to check out. But just added yesterday into master is a new graph type, the Service Graph. Whereas the workload graph gives you your most physical view of the mesh, the service graph gives you your most logical view of the mesh. Let’s look at a workload graph first. It gives you something like this:
In Istio requests flow from workload to workload. An Istio workload on Kubernetes or OpenShift is typically a deployment (although it can be other things, like a replica-set). Each workload can handle multiple services. The circle nodes represent workloads. Triangles represent services. In this graph we see only one triangle, it is showing that some requests for the details service failed before reaching a workload (because of an Istio fault injection rule I have set up for testing).
We can toggle on the Show Services option in the Display drop-down and we’ll be able to see the requested services and how they get directed to a workload for handling:
Now we can see lots of triangles injected between the workloads. This shows us the requested services and then how those service requests were directed (after applying virtual service rules in Istio). This is great but we’ve also had requests for a pure service graph. App developers think about services requesting services. The workloads show the mechanics of how the service interaction is actually happening, but it can be useful to see the logical service interaction as well. By selecting the new Service graph type, we get the following:
With the service graph type we can see the request traffic between our services, with traffic aggregated as necessary to best see the logical app design and the actual request flow.
There have been a ton of other great recent additions in Kiali. If you are using Istio you should also be using Kiali for observation. And of course, Kiali is always looking for feedback and contributors! For help getting started visit the Kiali homepage or Kiali on Github.