Kiali Sprint #34 — graph replay, new wizards, and more enhancements

Edgar Hernandez
Kiali
Published in
6 min readFeb 13, 2020

Hello all! Sprint #34 finished on January 31st and Kiali v1.13 was released that same day.

But wait! Don’t use version 1.13.0. After we released 1.13.0 a CVE affected our container images. We had to do a re-spin as version 1.13.1. Use this version to stay safe ;-)

There are some nice features and I think you should watch the recorded demo. Although the recording is about 36 minutes long, only the first 16 minutes correspond to the Kiali demo. The rest of the recording is showing a way to analyze Jaeger data — which is quite interesting! Here is the recording:

In case you prefer to read. Let’s start with the list of enhancements.

Amended weight validations of VirtualServices

There were several validations on Istio’s VirtualServices objects that were checking correct weights: validate weight is a number, no weights over 100%, check that weights add up to 100% and check that all routes have a weight.

Istio is already covering all these validations in version 1.3+ (and some validations were already present in earlier versions). So, a double check doesn’t make sense and these validations were removed from Kiali. But one new validation was added: since Istio assumes that weight is 100% if there is only one route in the VirtualService, Kiali will show a warning if the configured weight is not 100.

You can learn more about the added validation by reading the brief documentation on Kiali’s website.

Graph side panel UX enhancements

With the PatternFly 4 migration that happened some Sprints ago, almost all Kiali suffered some design change. But the graph side panel remained almost unchanged.

This Sprint, the side panel design was revisited and improved. Fonts were fixed (we didn’t like the varying sizes), workload/services/apps labels were removed, usage of badges were preferred, gradients were removed, colors of 4xx and 5xx errors were changed for better contrast, etc.

Here is a screenshot to let you see the difference (left is before enhancements, right is with enhancements):

Also, a new menu was added at the top right with links to other Kiali pages that offer more details of the selected graph entity:

The new menu is not always available. It will appear only if Kiali has detail pages for the selected entity in the graph.

Jaeger spans in runtime metrics

In Sprint #33 Jaeger spans were integrated in Inbound and Outbound metric charts. However, if you were using the Kiali’s runtimes monitoring feature, you may have noticed that the runtime metrics didn’t have the Jaeger spans.

This Sprint, the metrics & spans integration was extended to make the spans available in the runtime metrics, making nicer a feature that is already awesome:

Ability to create Gateway and Sidecar Istio objects

Did you know that Kiali can create some Istio configurations for you? By using the Istio Wizards available in the Service Details page, you can create some routing rules. But these wizards are covering only very specific cases.

To provide more versatility to Istio configurations from Kiali, we are starting to incorporate configuration options in a more generic way. As a first step, we added the ability to create Gateway and Sidecar objects. You can find the option in the Istio Config list page: there is a new Actions menu:

When you click on Create New Istio Config, a form will be shown to let you choose and configure the object you need to create.

This tool is only for objects creation. You can delete the object by going to its Istio Config detail page and editing is done in the Istio Config YAML editor.

Graph replay

Historically, Kiali has provided only the current state of the graph. The only available option to kind-of look in the past was a drop-down that let you choose how much past data to fetch prior to the current time. But this is mainly for data aggregation and stats (like requests-per-second, error rate, etc.).

Graph replay is a new awesome feature that lets you examine the past state of your service mesh. If you want to know how your service mesh looked at some time in the past, you can now do it! Of course, metrics must still be available in the Prometheus instance that Istio is using to record metrics.

An animated GIF may give a bare idea of Graph replay, and I could try to write some explanation. But, to be honest, this is a feature that you should watch with a guided explanation. So, again I encourage you to watch the recorded demo of Sprint #34. The following link starts the video at the point where the Graph replay demo begins: https://youtu.be/04fGMBjHZ68?t=365

Remove capitalize

This is a community contribution from GitHub Kinso user. It’s a small change in styles to remove some capitalization that didn’t make sense in pages where VirtualService routes are shown (like Service Details and Istio Config details).

Indeed, with this change the labels are better aligned with what you would see in the YAML of Istio CRDs.

Jaeger traces iFrame is removed

Although this is a little technical, it’s worth mentioning.

If you are using Kiali’s Jaeger integration, you may have noticed that Kiali was using an iFrame to embed Jaeger UI. When the Jaeger integration was introduced in Kiali, the Jaeger UI was embedded to quickly provide tracing features within Kiali, but this was conceived as a short term solution.

One of the main goals of Kiali is to provide correlation between metrics, traces, logs and other sources of data. The recently introduced feature of traces in the metrics charts is a way to provide some data correlation.

Simply, embedding the Jaeger UI in Kiali is not scalable to achieve the data correlation goal because the view cannot be customized. So, the iFrame controls were replaced by a custom Kiali component. For now, it is showing the same data as the Jaeger UI, but this opens the possibility to add layers of data from other sources.

In turn, the features of Jaeger UI are lost. Remember that we don’t want to remake the Jaeger UI in Kiali, but to provide enhanced observability and correlation. So, there is a link to jump to Jaeger UI if you need its features.

This is aligned with what we have been doing in the metric tabs. If you need more powerful metrics features, we provide links to jump into Grafana.

Stay in touch!

That’s the update of this Sprint. If you haven’t used Kiali, I hope this post gives you a reason to try Kiali! Installing Kiali is easy and well explained in our Getting started guide, available in the website.

I remind you that Kiali project has a Twitter account. It would be great if you follow us :-)

--

--