Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add metrics to show number of peers by client #3571

Merged
merged 1 commit into from
Jan 5, 2022

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jan 5, 2022

Motivation

We want to know number of peers per client, especially Unknown client

Description

Add new metric for that

@codeclimate
Copy link

codeclimate bot commented Jan 5, 2022

Code Climate has analyzed commit 58c58c0 and detected 0 issues on this pull request.

View more on Code Climate.

@codecov
Copy link

codecov bot commented Jan 5, 2022

Codecov Report

Merging #3571 (58c58c0) into master (c384b36) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3571      +/-   ##
==========================================
- Coverage   37.47%   37.45%   -0.03%     
==========================================
  Files         311      311              
  Lines        8291     8296       +5     
  Branches     1282     1283       +1     
==========================================
  Hits         3107     3107              
- Misses       5036     5041       +5     
  Partials      148      148              

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: c4cccac Previous: c384b36 Ratio
BeaconState.hashTreeRoot - No change 671.00 ns/op 561.00 ns/op 1.20
BeaconState.hashTreeRoot - 1 full validator 149.43 us/op 125.09 us/op 1.19
BeaconState.hashTreeRoot - 32 full validator 2.3313 ms/op 1.8714 ms/op 1.25
BeaconState.hashTreeRoot - 512 full validator 30.666 ms/op 25.523 ms/op 1.20
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 152.19 us/op 126.80 us/op 1.20
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5515 ms/op 2.0429 ms/op 1.25
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.911 ms/op 27.639 ms/op 1.19
BeaconState.hashTreeRoot - 1 balances 104.78 us/op 89.461 us/op 1.17
BeaconState.hashTreeRoot - 32 balances 909.81 us/op 771.92 us/op 1.18
BeaconState.hashTreeRoot - 512 balances 8.8790 ms/op 7.5842 ms/op 1.17
BeaconState.hashTreeRoot - 250000 balances 159.37 ms/op 137.58 ms/op 1.16
processSlot - 1 slots 70.008 us/op 45.860 us/op 1.53
processSlot - 32 slots 3.4672 ms/op 2.8804 ms/op 1.20
getCommitteeAssignments - req 1 vs - 250000 vc 6.2657 ms/op 5.2852 ms/op 1.19
getCommitteeAssignments - req 100 vs - 250000 vc 8.6473 ms/op 7.3645 ms/op 1.17
getCommitteeAssignments - req 1000 vs - 250000 vc 9.1459 ms/op 7.9779 ms/op 1.15
computeProposers - vc 250000 24.868 ms/op 22.326 ms/op 1.11
computeEpochShuffling - vc 250000 227.14 ms/op 187.90 ms/op 1.21
getNextSyncCommittee - vc 250000 407.00 ms/op 353.01 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei normalcase 49.735 ms/op 108.96 ms/op 0.46
altair processAttestation - 250000 vs - 7PWei worstcase 51.163 ms/op 41.772 ms/op 1.22
altair processAttestation - setStatus - 1/6 committees join 12.714 ms/op 10.776 ms/op 1.18
altair processAttestation - setStatus - 1/3 committees join 27.959 ms/op 22.331 ms/op 1.25
altair processAttestation - setStatus - 1/2 committees join 41.386 ms/op 33.495 ms/op 1.24
altair processAttestation - setStatus - 2/3 committees join 61.055 ms/op 46.236 ms/op 1.32
altair processAttestation - setStatus - 4/5 committees join 62.986 ms/op 55.787 ms/op 1.13
altair processAttestation - setStatus - 100% committees join 78.775 ms/op 70.735 ms/op 1.11
altair processAttestation - updateEpochParticipants - 1/6 committees join 12.428 ms/op 12.282 ms/op 1.01
altair processAttestation - updateEpochParticipants - 1/3 committees join 26.563 ms/op 25.362 ms/op 1.05
altair processAttestation - updateEpochParticipants - 1/2 committees join 35.946 ms/op 26.416 ms/op 1.36
altair processAttestation - updateEpochParticipants - 2/3 committees join 31.254 ms/op 28.083 ms/op 1.11
altair processAttestation - updateEpochParticipants - 4/5 committees join 32.859 ms/op 29.245 ms/op 1.12
altair processAttestation - updateEpochParticipants - 100% committees join 35.341 ms/op 36.139 ms/op 0.98
altair processAttestation - updateAllStatus 25.187 ms/op 21.406 ms/op 1.18
altair processBlock - 250000 vs - 7PWei normalcase 58.434 ms/op 42.898 ms/op 1.36
altair processBlock - 250000 vs - 7PWei worstcase 133.20 ms/op 114.74 ms/op 1.16
altair processEpoch - mainnet_e81889 1.1965 s/op 1.0021 s/op 1.19
mainnet_e81889 - altair beforeProcessEpoch 304.28 ms/op 273.37 ms/op 1.11
mainnet_e81889 - altair processJustificationAndFinalization 70.671 us/op 49.366 us/op 1.43
mainnet_e81889 - altair processInactivityUpdates 25.910 ms/op 17.878 ms/op 1.45
mainnet_e81889 - altair processRewardsAndPenalties 166.47 ms/op 141.42 ms/op 1.18
mainnet_e81889 - altair processRegistryUpdates 9.2460 us/op 5.5790 us/op 1.66
mainnet_e81889 - altair processSlashings 3.0980 us/op 1.1670 us/op 2.65
mainnet_e81889 - altair processEth1DataReset 2.7230 us/op 1.0040 us/op 2.71
mainnet_e81889 - altair processEffectiveBalanceUpdates 12.647 ms/op 11.747 ms/op 1.08
mainnet_e81889 - altair processSlashingsReset 17.722 us/op 8.4230 us/op 2.10
mainnet_e81889 - altair processRandaoMixesReset 18.739 us/op 11.467 us/op 1.63
mainnet_e81889 - altair processHistoricalRootsUpdate 4.3570 us/op 1.3360 us/op 3.26
mainnet_e81889 - altair processParticipationFlagUpdates 115.81 ms/op 156.99 ms/op 0.74
mainnet_e81889 - altair processSyncCommitteeUpdates 2.8780 us/op 1.0580 us/op 2.72
mainnet_e81889 - altair afterProcessEpoch 312.48 ms/op 217.96 ms/op 1.43
altair processInactivityUpdates - 250000 normalcase 89.249 ms/op 82.336 ms/op 1.08
altair processInactivityUpdates - 250000 worstcase 78.420 ms/op 73.782 ms/op 1.06
altair processParticipationFlagUpdates - 250000 anycase 130.29 ms/op 89.730 ms/op 1.45
altair processRewardsAndPenalties - 250000 normalcase 177.06 ms/op 129.45 ms/op 1.37
altair processRewardsAndPenalties - 250000 worstcase 173.82 ms/op 117.42 ms/op 1.48
altair processSyncCommitteeUpdates - 250000 431.07 ms/op 354.85 ms/op 1.21
Tree 40 250000 create 911.73 ms/op 660.92 ms/op 1.38
Tree 40 250000 get(125000) 384.78 ns/op 333.66 ns/op 1.15
Tree 40 250000 set(125000) 1.9976 us/op 2.0244 us/op 0.99
Tree 40 250000 toArray() 42.396 ms/op 40.317 ms/op 1.05
Tree 40 250000 iterate all - toArray() + loop 50.046 ms/op 40.740 ms/op 1.23
Tree 40 250000 iterate all - get(i) 140.04 ms/op 119.15 ms/op 1.18
MutableVector 250000 create 29.604 ms/op 22.620 ms/op 1.31
MutableVector 250000 get(125000) 17.734 ns/op 14.200 ns/op 1.25
MutableVector 250000 set(125000) 620.18 ns/op 568.08 ns/op 1.09
MutableVector 250000 toArray() 10.361 ms/op 9.1321 ms/op 1.13
MutableVector 250000 iterate all - toArray() + loop 10.528 ms/op 9.3137 ms/op 1.13
MutableVector 250000 iterate all - get(i) 4.0654 ms/op 3.1995 ms/op 1.27
Array 250000 create 6.4806 ms/op 6.2092 ms/op 1.04
Array 250000 clone - spread 2.5682 ms/op 2.5824 ms/op 0.99
Array 250000 get(125000) 1.2690 ns/op 1.1760 ns/op 1.08
Array 250000 set(125000) 1.2690 ns/op 1.1280 ns/op 1.13
Array 250000 iterate all - loop 202.62 us/op 167.94 us/op 1.21
aggregationBits - 2048 els - readonlyValues 277.57 us/op 251.66 us/op 1.10
aggregationBits - 2048 els - zipIndexesInBitList 45.148 us/op 43.587 us/op 1.04
regular array get 100000 times 80.708 us/op 67.406 us/op 1.20
wrappedArray get 100000 times 80.810 us/op 67.381 us/op 1.20
arrayWithProxy get 100000 times 34.228 ms/op 34.420 ms/op 0.99
ssz.Root.equals 1.4430 us/op 1.3550 us/op 1.06
ssz.Root.equals with valueOf() 1.6570 us/op 1.3780 us/op 1.20
byteArrayEquals with valueOf() 1.5950 us/op 1.3480 us/op 1.18
phase0 processBlock - 250000 vs - 7PWei normalcase 12.425 ms/op 10.104 ms/op 1.23
phase0 processBlock - 250000 vs - 7PWei worstcase 91.243 ms/op 73.925 ms/op 1.23
phase0 afterProcessEpoch - 250000 vs - 7PWei 255.00 ms/op 201.90 ms/op 1.26
phase0 beforeProcessEpoch - 250000 vs - 7PWei 674.78 ms/op 538.67 ms/op 1.25
phase0 processEpoch - mainnet_e58758 1.0051 s/op 791.91 ms/op 1.27
mainnet_e58758 - phase0 beforeProcessEpoch 535.71 ms/op 421.07 ms/op 1.27
mainnet_e58758 - phase0 processJustificationAndFinalization 60.979 us/op 73.435 us/op 0.83
mainnet_e58758 - phase0 processRewardsAndPenalties 142.99 ms/op 97.756 ms/op 1.46
mainnet_e58758 - phase0 processRegistryUpdates 45.446 us/op 34.480 us/op 1.32
mainnet_e58758 - phase0 processSlashings 3.5570 us/op 1.1790 us/op 3.02
mainnet_e58758 - phase0 processEth1DataReset 3.0510 us/op 1.0160 us/op 3.00
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 10.923 ms/op 9.7671 ms/op 1.12
mainnet_e58758 - phase0 processSlashingsReset 15.361 us/op 7.2600 us/op 2.12
mainnet_e58758 - phase0 processRandaoMixesReset 21.839 us/op 11.952 us/op 1.83
mainnet_e58758 - phase0 processHistoricalRootsUpdate 4.2370 us/op 1.1690 us/op 3.62
mainnet_e58758 - phase0 processParticipationRecordUpdates 15.531 us/op 8.2970 us/op 1.87
mainnet_e58758 - phase0 afterProcessEpoch 262.95 ms/op 178.51 ms/op 1.47
phase0 processEffectiveBalanceUpdates - 250000 normalcase 12.494 ms/op 10.830 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.3173 s/op 1.3880 s/op 0.95
phase0 processRegistryUpdates - 250000 normalcase 52.001 us/op 35.217 us/op 1.48
phase0 processRegistryUpdates - 250000 badcase_full_deposits 3.2059 ms/op 2.8603 ms/op 1.12
phase0 processRegistryUpdates - 250000 worstcase 0.5 1.9560 s/op 1.4849 s/op 1.32
phase0 getAttestationDeltas - 250000 normalcase 41.452 ms/op 35.317 ms/op 1.17
phase0 getAttestationDeltas - 250000 worstcase 42.691 ms/op 35.061 ms/op 1.22
phase0 processSlashings - 250000 worstcase 43.453 ms/op 37.851 ms/op 1.15
shuffle list - 16384 els 15.698 ms/op 12.833 ms/op 1.22
shuffle list - 250000 els 224.11 ms/op 183.22 ms/op 1.22
getEffectiveBalances - 250000 vs - 7PWei 12.128 ms/op 11.860 ms/op 1.02
computeDeltas 4.1855 ms/op 3.7256 ms/op 1.12
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.6288 ms/op 2.3268 ms/op 1.13
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 800.16 us/op 717.21 us/op 1.12
BLS verify - blst-native 2.2309 ms/op 1.8577 ms/op 1.20
BLS verifyMultipleSignatures 3 - blst-native 4.5866 ms/op 3.8143 ms/op 1.20
BLS verifyMultipleSignatures 8 - blst-native 9.8267 ms/op 8.2374 ms/op 1.19
BLS verifyMultipleSignatures 32 - blst-native 35.770 ms/op 29.857 ms/op 1.20
BLS aggregatePubkeys 32 - blst-native 47.739 us/op 39.184 us/op 1.22
BLS aggregatePubkeys 128 - blst-native 184.11 us/op 154.01 us/op 1.20
getAttestationsForBlock 85.700 ms/op 76.262 ms/op 1.12
CheckpointStateCache - add get delete 18.223 us/op 15.886 us/op 1.15
validate gossip signedAggregateAndProof - struct 5.3367 ms/op 4.4558 ms/op 1.20
validate gossip signedAggregateAndProof - treeBacked 5.2552 ms/op 4.4136 ms/op 1.19
validate gossip attestation - struct 2.5143 ms/op 2.0848 ms/op 1.21
validate gossip attestation - treeBacked 2.5114 ms/op 2.1261 ms/op 1.18
bytes32 toHexString 2.0200 us/op 1.8430 us/op 1.10
bytes32 Buffer.toString(hex) 802.00 ns/op 677.00 ns/op 1.18
bytes32 Buffer.toString(hex) from Uint8Array 1.0900 us/op 927.00 ns/op 1.18
bytes32 Buffer.toString(hex) + 0x 804.00 ns/op 681.00 ns/op 1.18
Object access 1 prop 0.42200 ns/op 0.35300 ns/op 1.20
Map access 1 prop 0.35000 ns/op 0.28400 ns/op 1.23
Object get x1000 21.021 ns/op 16.808 ns/op 1.25
Map get x1000 1.1630 ns/op 0.96200 ns/op 1.21
Object set x1000 131.76 ns/op 118.42 ns/op 1.11
Map set x1000 81.399 ns/op 72.127 ns/op 1.13
Return object 10000 times 0.43890 ns/op 0.36730 ns/op 1.19
Throw Error 10000 times 7.3079 us/op 5.9259 us/op 1.23
enrSubnets - fastDeserialize 64 bits 1.4630 us/op 1.3830 us/op 1.06
enrSubnets - ssz BitVector 64 bits 19.688 us/op 16.705 us/op 1.18
enrSubnets - fastDeserialize 4 bits 552.00 ns/op 478.00 ns/op 1.15
enrSubnets - ssz BitVector 4 bits 3.3800 us/op 2.9860 us/op 1.13
RateTracker 1000000 limit, 1 obj count per request 220.34 ns/op 189.65 ns/op 1.16
RateTracker 1000000 limit, 2 obj count per request 164.64 ns/op 142.81 ns/op 1.15
RateTracker 1000000 limit, 4 obj count per request 134.11 ns/op 120.10 ns/op 1.12
RateTracker 1000000 limit, 8 obj count per request 120.78 ns/op 107.70 ns/op 1.12
RateTracker with prune 4.6920 us/op 4.5470 us/op 1.03

by benchmarkbot/action

@dapplion dapplion merged commit 659e3e1 into master Jan 5, 2022
@dapplion dapplion deleted the tuyen/peers-by-client branch January 5, 2022 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants