Should signal loudly when internal channel capacity exhausted #209
Labels
A-instrumentation
Area: instrumentation.
C-console
Crate: console.
C-subscriber
Crate: console-subscriber.
E-medium
Effort: medium.
S-feature
Severity: feature. This is adding a new feature.
After writing the docs for the parameters that control the internal channel capacity for the
ConsoleLayer
->Server
communication, I realized that I don't think the current UI does anything to relay that channel exhaustion may have occurred. The system reacts to this scenario by throwing events away until capacity is freed up.Thus, the output may be misleading (e.g. showing tasks that never joined, when in fact what happened is that their join event was dropped) if some of the events have been dropped. But the console UI doesn't say that this has happened. (I think its currently up to the human user to notice "something's weird about this output" and dig deeper into why.)
I suggest we attack this in two ways, concurrently:
With part 1 in place, the console UI should be able to render sets of tasks (i.e. every task that was still alive at the time of channel exhaustion) as having potentially inaccurate output. (Ideally we'd be able to indicate which outputs should not be relied upon, but I'd be happy with just a general warning at the top.)
With part 2 in pace, the console UI should be able to signal exhaustion very soon after it occurs, before the model becomes inaccurate. Thus, end developers who are still debugging their app can start investigating the problem without waiting for the events currently in the channel to drain completely.
The text was updated successfully, but these errors were encountered: