SIGN IN SIGN UP

network-flow(donut): serve the breakdown of the aggregated remainder

The endpoint takes the donut widget's own configuration and visual context,
rather than a dimension and a limit of its own, so the same filters and the
same limit decide what "Other" means on both sides and a caller cannot
accidentally ask about a different set than the one the reader is looking at.

The window is asked for explicitly. A relative or unset time filter resolves
when the request arrives, so a breakdown that re-resolved it would cover a
window shifted by however long the reader took to open the panel - and the
one number the panel invites comparing against the ring would be the one that
disagrees. Callers pass the window the donut reported; without it the time
filter still decides, as it does for the trend chart's requested range.

Shares are worked out here. A client would have to guard the empty tail's
zero total itself, and two clients would guard it differently. The count of
categories comes back alongside the list because the list is capped, so a
panel can say what it is not showing rather than quietly showing less; that
the list is short is left for the client to notice, being a subtraction it
cannot get wrong.

The previous-window total needs its description read carefully: it is what
these categories did before, not what the previous window's own remainder
was - that had a different membership. It answers "is there any history
here", which is what decides whether a comparison can be shown at all.

CMK-37878

Change-Id: I42f4d6cac3ef77f5bb4dffca4ca3a2a1f0344d63
L
Lukas Lengler committed
7df8c7042d0772d7d10190df320768f0e20f087e
Parent: 05494f4