Network flows
Who talks to whom, and how well.
What a flow is #
A flow is a connection between two things, measured from your traces: who called whom, how often, how many failed, and how long the calls took.
- Source — the caller.
- Destination — the callee.
- Destination kind — service, host, pod, database or queue.
- Requests and errors — call volume and failures.
- Average and 95th percentile latency — as the caller measured it.
Grouping #
Group the map by any one of:
- service
- host
- team
- env
- namespace
- cluster
- pod
Grouping by service is the default and the most useful starting point: it shows the shape of your architecture rather than the shape of one cluster.
Reading the map #
- A thick edge is a high-volume dependency.
- A red edge is carrying errors — follow it to the destination.
- A long-latency edge is worth a look even when its volume is low.
- An isolated node has no traced traffic, which may mean it is idle or untraced.
Finding a dependency you did not know about #
Group by pod or namespace to see physical dependencies. A database with a dozen calling services is a candidate for consolidation; a service calling a queue no one owns is worth a conversation.
Group by team when you are planning work rather than debugging. It shows which teams are coupled, and where a change would cross a boundary.
Window #
Flow views cover up to 24 hours. For longer trends, chart the call counts as a metric instead.
Onward #
A flow names the machines and workloads at each end: Hosts, Containers and Kubernetes. For the datastores behind the edges, Data streams monitoring.