-
Notifications
You must be signed in to change notification settings - Fork 772
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
Delta exporters will Export only those points which received new update #2629
Delta exporters will Export only those points which received new update #2629
Conversation
This is almost same as what @alanwest did the Metric Point clean up PR, except that this PR does not do the actual clean up/reuse. |
Codecov Report
@@ Coverage Diff @@
## main #2629 +/- ##
==========================================
+ Coverage 79.83% 79.84% +0.01%
==========================================
Files 249 249
Lines 8627 8659 +32
==========================================
+ Hits 6887 6914 +27
- Misses 1740 1745 +5
|
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.
LGTM. Consider updating the changelog.
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.
👍
Towards #2524 .
For delta, this only exports a point, if there is an update since last collection.
For cumulative, retains same behavior as before - once a point is updated, it'll be exported forever with same value.
This PR does not reclaim an inactive point for using when we are running out of metric points.
Perf impact:
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19043.1288 (21H1/May2021Update)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
.NET SDK=6.0.100
[Host] : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT
DefaultJob : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT
Before:
With this PR:
(there is room for optimization to avoid the Delta vs Cumulative check on every Collect, as temporality is fixed at ctor itself. Good candidate for a small follow up PR)
Stress test:
Main:
Running (concurrency = 8), press to stop...
Stopping the stress test...
With this PR:
Stopping the stress test...