-
Notifications
You must be signed in to change notification settings - Fork 429
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
Enhanced Prometheur metrics' pusher #7346
Draft
Scooletz
wants to merge
10
commits into
master
Choose a base branch
from
metrics-pusher
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
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
benaadams
reviewed
Aug 20, 2024
@@ -8,6 +8,8 @@ public class MetricsConfig : IMetricsConfig | |||
public string ExposeHost { get; set; } = "+"; | |||
public int? ExposePort { get; set; } = null; | |||
public bool Enabled { get; set; } = false; | |||
|
|||
public bool PushAfterBlock { get; set; } = false; |
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.
If idea here would work I'd probably prefer it to be enabled by default - this way we have much better view on metrics than now.
16 tasks
Scooletz
force-pushed
the
metrics-pusher
branch
from
September 3, 2024 12:04
b6546b9
to
58784f9
Compare
Scooletz
force-pushed
the
metrics-pusher
branch
from
September 3, 2024 12:08
58784f9
to
b38f2dd
Compare
Two separate nodes run to compare metrics that were incoherent in the past, like gas: |
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.
This PR enhances monitoring capabilities by adding an option to force push of metrics right after a specific event. Next, it uses the option to force push after a block processing is done. This should allow to measure multiple nodes with better comparability, by making snapshots of metrics at the same point of execution. What is expected is that once metrics are published at the end of each block processed, they should be aligned and allow better comparison between instances.
Design
With introduction of another signal to publish metrics that is not time-based, there should be a limit of how frequent the other signal can be called. If blocks were processed 10 times per second, clearly we don't want to flush metrics that often. The signal should be throttled in some way. The following design it proposed then:
IMetricsConfig.PushAfterBlock
that were added already, introduceIMetricsConfig.MinimalIntervalSeconds
that would default to2
MetricPusher
triggerable as is, meaning that if aMetricsController
updates metrics, it can immediately releate pusher to pushMetricsController
to collect metrics and triggerMetricPusher
MetricPusher
waitsMinimalIntervalSeconds
before proceedingIntervalSeconds - MinimalIntervalSeconds
With this approach we:
MinimalIntervalSeconds
so that Graphana is not floodedIntervalSeconds
in the worst caseChanges
MonitoringService
with a newMetricPusher
that allows to force the pushUpdateMetrics
can be triggered via timer but also via force pushTypes of changes
What types of changes does your code introduce?
Testing
Requires testing
If yes, did you write tests?
Notes on testing
Optional. Remove if not applicable.
Documentation
Requires documentation update
If yes, link the PR to the docs update or the issue with the details labeled
docs
. Remove if not applicable.Requires explanation in Release Notes
If yes, fill in the details here. Remove if not applicable.
Remarks
Optional. Remove if not applicable.