Search code examples
tcpistiokiali

What does `Reported from` mean in the Kiali Dashboard for Inbound Metrics and Outbound Metrics?


I am trying to understand the TCP traffic between my deployments in Kiali but few of the Tabs are a little confusing to me.

From what I understand --

  • Inbound traffic - refers to traffic flowing from the Workload to other nodes
  • Outbound traffic - refers to incoming traffic from Workloads to this node

Then there are sub-options for Reported from - Source / Destination in both of them. What does that mean?

I am getting two different graphs for Inbound traffic when I change the Reported from value.

enter image description here


Solution

  • This is a subtelty of Istio telemetry. Basically, all metrics are reported redundantly both by the source of a request and by the destination, regardless whether it is inbound or outbound. See the reporter label definition here: https://istio.io/docs/reference/config/policy-and-telemetry/metrics/#labels

    Most of the time this information is redundant, that is it will be the same for source and destination reporters, but in several cases it will differ, for instance:

    • When the request emitter is not part of the service mesh, hence vizualized as unknown, there will be no corresponding telemetry for that source.
    • Similarly, if the receiver is unknown there will be no corresponding telemetry for that destination.
    • Some Istio features impact this telemetry, for instance when Fault Injection is enabled the corresponding telemetry will be emitted for source but not for destination. Similar things happens whenever a request is canceled from the outbound sidecar, e.g. with circuit breaking or such.
    • On the contrary, when mirroring is configured the mirrored requests will be seen for destination reporter but not for source
    • The response time metric differs depending on reporter: on source reporting it accounts for the whole response time, i.e. server processing time + network roundtrip whereas in destination reporting it will account only for the server processing time, hence you will see lower values.

    That's all I can think about now, but there's probably other exceptions.