Test Details Overview

Give the message processor its own stat type and count every inbound message drop (#5243)

* Count dispatched messages under a message processor stat type

The message processor counted and traced every message it dispatched
under the generic `message` type, although it is a standalone
component since it was given a dispatcher. It now counts them under
its own `message_processor_dispatch` type, and the node's dispatcher
counts and traces `message` for every inbound message it routes, next
to the drops it counts under `message_drop`.

* Count every inbound message that goes nowhere as a message drop

The dispatcher counted a `message_drop` when the block or vote
processor refused a message, but not when the vote replier refused a
confirmation request, the bootstrap server an ascending pull request,
bootstrap a response that answered none of its requests, or telemetry
an ack that failed verification, and a message the processor's channel
queue had no room for left no drop either. `bootstrap_service::process`
and `telemetry::process` now report whether they took the message,
every handler counts the drop when its component refuses, and the
processor counts one next to its own overfill. Requests a node that
does not vote receives, and requests without roots, count under
details of their own.

* Define the dispatcher visitor's handlers below its class

The visitor's handlers were written inside the class body, a level
deeper than method definitions elsewhere in the codebase. The class
now only declares them and each handler is defined below it, with no
change to what they do.

__________

Type: commit

Hash: 9ffcd40c8624f1de1a6931f8f5811be7c0da0581

Created: yesterday

__________

gr0v1ty/nano-node:9ffcd40c8624f1de1a6931f8f5811be7c0da0581

Test Results

Test Case Status Duration Median Deviation Log Graph