-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[NHC] Overhaul request model #5784
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
banool
force-pushed
the
banool/overhaul_nhc_evaluator_inputs
branch
4 times, most recently
from
December 8, 2022 20:59
7571796
to
63a2913
Compare
banool
changed the title
[NHC] Add Fetchers, overhaul Evaluator inputs
[NHC] Overhaul NHC request model
Dec 9, 2022
banool
force-pushed
the
banool/overhaul_nhc_evaluator_inputs
branch
14 times, most recently
from
December 12, 2022 15:57
00c3906
to
fa3f198
Compare
banool
requested review from
igor-aptos and
JoshLind
and removed request for
gregnazario and
igor-aptos
December 12, 2022 17:48
banool
force-pushed
the
banool/overhaul_nhc_evaluator_inputs
branch
3 times, most recently
from
December 12, 2022 18:30
044c097
to
b300fd7
Compare
banool
force-pushed
the
banool/overhaul_nhc_evaluator_inputs
branch
5 times, most recently
from
December 12, 2022 23:53
c9d2773
to
27182b9
Compare
perryjrandall
approved these changes
Dec 16, 2022
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.
itrustu
JoshLind
approved these changes
Dec 16, 2022
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.
Skim read this -- looks reasonable. Won't pretend to have done an in-depth review, but LGTM to unblock 😄
banool
force-pushed
the
banool/overhaul_nhc_evaluator_inputs
branch
from
December 17, 2022 20:52
27182b9
to
1dd2987
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
Closed
This comment was marked as spam.
This comment was marked as spam.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR is centered around inverting the NHC request model. Previously, the NHC model assumed that as part of the configuration, we would define the evaluators that must pass for that evaluation. This made sense for AIT registration, where we mandate one node "profile", but not for the case where operators just want to check their node performance. For those cases it would make more sense to allow the baseline configuration to specify many checks, but we can skip some per request based on the provided information. So for example, a single baseline config might specify metrics and API checks, but if the request only has an API port, we will only run the API checks. This makes both configuration and requests much more flexible.
What about the AIT case though? Well for that, with this PR you can optionally mark a Checker as
required
. In that case, if the information required to run that Checker is not given, the Checker will return a failed result instead of just nothing. For example, if we mark the LatencyChecker as required, but the API port is not given, we'll return a result indicating that this check was required and the user should provide their API port.Additional design goals:
required
).For more information (aka my stream of consciousness brain dump) about the vision here, see https://www.notion.so/aptoslabs/Node-Checker-Overhaul-4e883b7ab4b64274809667c58bb46481 (internal only sorry).
Up next:
Test Plan
Devnet fullnode
Run a local NHC with a configuration where the MinimumPeersChecker is enabled:
Sending a request without a metrics port if the MinimumPeersChecker is not
required
:Sending a request without a metrics port if the MinimumPeersChecker is
required
:Sending a request with the metrics port:
Full output
This is the output of NHC when I run the full suite of API and metrics checks. Some of these are not passing because they're not applicable to a fullnode (e.g. consensus proposals) while others are not passing because in this case, the node under test has not been updated for the latest devnet.