Skip to content
Unverified Commit 4057ccd7 authored by Nazar Mokrynskyi's avatar Nazar Mokrynskyi Committed by GitHub
Browse files

Reactive syncing metrics (#5410)

This PR untangles syncing metrics and makes them reactive, the way
metrics are supposed to be in general.

Syncing metrics were bundled in a way that caused coupling across
multiple layers: justifications metrics were defined and managed by
`ChainSync`, but only updated periodically on tick in `SyncingEngine`,
while actual values were queried from `ExtraRequests`. This convoluted
architecture was hard to follow when I was looking into
https://github.com/paritytech/polkadot-sdk/issues/5333.

Now metrics that correspond to each component are owned by that
component and updated as changes are made instead of on tick every
1100ms.

This does add some annoying boilerplate that is a bit harder to
maintain, but it separates metrics more nicely and if someone queries
them more frequently will give arbitrary resolution. Since metrics
updates are just atomic operations I do not expect any performance
impact of these changes.

Will add prdoc if changes look good otherwise.

P.S. I noticed that importing requests (and corresponding metrics) were
not cleared ever since corresponding code was introduced in
https://github.com/paritytech/polkadot-sdk/commit/dc41558b#r145518721
and I left it as is to not change the behavior, but it might be
something worth fixing.

cc @dmitry-markin



---------

Co-authored-by: default avatarDmitry Markin <[email protected]>
parent e4ffba6e
Pipeline #492470 waiting for manual action with stages
in 1 hour, 2 minutes, and 57 seconds
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment