-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Report new received crds signatures and their respective origins to metrics #32504
Report new received crds signatures and their respective origins to metrics #32504
Conversation
Codecov Report
@@ Coverage Diff @@
## master #32504 +/- ##
=======================================
Coverage 82.0% 82.0%
=======================================
Files 780 780
Lines 210789 210798 +9
=======================================
+ Hits 172931 172950 +19
+ Misses 37858 37848 -10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before merging, can you please run a node with this code on testnet and verify that it does not push too many data to metrics server.
testnet node confirmed the ~1 message report per second with |
was this 1 message per minute or per second? |
ahhh sorry! this is 1 message PER MINUTE. |
automerge label removed due to a CI failure |
…etrics (#32504) * screwed up old branch and syncing with upstream branch * add fixed size ring buff instead of variable sized vecdeque for reporting signatures * modify difficulty to take in n 0 bits and check if signature ending ends in n 0 bits * update to only push every 18 trailing zero bits. and clean up * report origin with signature. and set trailing 0s to 8 for local testing * change back to 18 trailing zeros and rm unused imports * run cargo rmt * run ./scripts/cargo-for-all-lock-files.sh tree * allow integer arithmetic for bit comparison * rm unused lifetime * rm duplicate entry? * re implement ring buf * put ringbuf in sorted order * ringbuf in cargo.toml now in sorted order * rm ring buf, refactor, fix trailing zero bug * fix bug in trailing zeros. was comparing wrong ones * fix needless range loop bug * fix bug * change trailing zero checking to build in methods and only report first 8 bytes of signature and origin pubkey * report full origin string and first 8 bytes of signature * set SIGNATURE_SAMPLE_TRAILING_ZEROS back to 18 * forgot to run cargo tree * avoid panic and change working * rm bs58 * pass in Option<String> into datapoint_info * shorten metric names (cherry picked from commit 80f7082)
…etrics (#32504) * screwed up old branch and syncing with upstream branch * add fixed size ring buff instead of variable sized vecdeque for reporting signatures * modify difficulty to take in n 0 bits and check if signature ending ends in n 0 bits * update to only push every 18 trailing zero bits. and clean up * report origin with signature. and set trailing 0s to 8 for local testing * change back to 18 trailing zeros and rm unused imports * run cargo rmt * run ./scripts/cargo-for-all-lock-files.sh tree * allow integer arithmetic for bit comparison * rm unused lifetime * rm duplicate entry? * re implement ring buf * put ringbuf in sorted order * ringbuf in cargo.toml now in sorted order * rm ring buf, refactor, fix trailing zero bug * fix bug in trailing zeros. was comparing wrong ones * fix needless range loop bug * fix bug * change trailing zero checking to build in methods and only report first 8 bytes of signature and origin pubkey * report full origin string and first 8 bytes of signature * set SIGNATURE_SAMPLE_TRAILING_ZEROS back to 18 * forgot to run cargo tree * avoid panic and change working * rm bs58 * pass in Option<String> into datapoint_info * shorten metric names (cherry picked from commit 80f7082)
…ns to metrics (backport of #32504) (#32674) Report new received crds signatures and their respective origins to metrics (#32504) * screwed up old branch and syncing with upstream branch * add fixed size ring buff instead of variable sized vecdeque for reporting signatures * modify difficulty to take in n 0 bits and check if signature ending ends in n 0 bits * update to only push every 18 trailing zero bits. and clean up * report origin with signature. and set trailing 0s to 8 for local testing * change back to 18 trailing zeros and rm unused imports * run cargo rmt * run ./scripts/cargo-for-all-lock-files.sh tree * allow integer arithmetic for bit comparison * rm unused lifetime * rm duplicate entry? * re implement ring buf * put ringbuf in sorted order * ringbuf in cargo.toml now in sorted order * rm ring buf, refactor, fix trailing zero bug * fix bug in trailing zeros. was comparing wrong ones * fix needless range loop bug * fix bug * change trailing zero checking to build in methods and only report first 8 bytes of signature and origin pubkey * report full origin string and first 8 bytes of signature * set SIGNATURE_SAMPLE_TRAILING_ZEROS back to 18 * forgot to run cargo tree * avoid panic and change working * rm bs58 * pass in Option<String> into datapoint_info * shorten metric names (cherry picked from commit 80f7082) Co-authored-by: Greg Cusack <greg.cusack@solana.com>
Problem
There is currently no way to track how gossip messages propagate throughout the network.
We have no way to answer the question: for a specific message and origin, how many validators receive the message?
Summary of Changes
Report any new crds values' signature and origin to metrics
Reduce event rate by only reporting signatures with
n
trailing zeros, wheren
is 1818 trailing zeros gives us a difficulty level that results in approximately 1-2 new signatures reported every minute per validator
Approximate number of new push messages received per validator:
log2(250k) = ~18
data reported as:
series:
cluster_info_crds_stats_message_signatures_received
data:
crds_origin
andcrds_signature
Fixes #