-
-
Notifications
You must be signed in to change notification settings - Fork 289
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
feat: track prepare next epoch time #6256
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## unstable #6256 +/- ##
============================================
+ Coverage 80.31% 80.38% +0.07%
============================================
Files 202 202
Lines 19543 19622 +79
Branches 1169 1176 +7
============================================
+ Hits 15695 15773 +78
- Misses 3820 3821 +1
Partials 28 28 |
Performance Report✔️ no performance regression detected Full benchmark results
|
@@ -1298,6 +1298,11 @@ export function createLodestarMetrics( | |||
name: "lodestar_precompute_next_epoch_transition_waste_total", | |||
help: "Total number of precomputing next epoch transition wasted", | |||
}), | |||
duration: register.histogram({ | |||
name: "lodestar_precompute_next_epoch_transition_duration_seconds", | |||
help: "Duration of precomputeNextEpochTransition at lodestar side", |
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.
The "at lodestar side" might be confusing, are we precomputing the next epoch transition somewhere else (not in lodestar)?
Looking at the code the two major tasks we do are
- precompute next epoch transition
- and prepare execution payload
Might be missing something
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.
There's also the prepareExecutionPayload call that's not included in this timer.
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.
But isn't that a different task or maybe I misunderstand what is meant by precomputeEpochTransition
, my assumption is this includes epoch transition + hashing the state.
From my understanding the "at lodestar side" is redundant and can be removed as the task precomputeNextEpochTransition
is only executed by Lodestar.
prepareExecutionPayload
is part of preparing for next slot but not part of precomputing the epoch transition.
🎉 This PR is included in v1.14.0 🎉 |
* feat: track prepare next epoch time * Update packages/beacon-node/src/metrics/metrics/lodestar.ts * Align variable name of timer with histogram naming --------- Co-authored-by: Cayman <caymannava@gmail.com> Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Motivation
Track prepare next epoch time at lodestar side, the log shows that a lot of time it take >4s on holesky
Description
hashTreeRoot()