-
Notifications
You must be signed in to change notification settings - Fork 26.4k
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
Metrics opt #12288
Metrics opt #12288
Conversation
@songxiaosheng PTAL |
…o into opt_stats_app_level
…o into opt_stats_app_level
Codecov Report
@@ Coverage Diff @@
## 3.2 #12288 +/- ##
============================================
+ Coverage 68.62% 69.33% +0.70%
+ Complexity 114 2 -112
============================================
Files 3565 1607 -1958
Lines 164663 66250 -98413
Branches 27092 9717 -17375
============================================
- Hits 113008 45934 -67074
+ Misses 41722 15864 -25858
+ Partials 9933 4452 -5481 see 2005 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Kudos, SonarCloud Quality Gate passed! |
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
What is the purpose of the change
A series of optimizations for the metrics code,make code more reusable and more streamlined
Brief changelog
1、When exporting metrics, application information is optimized from parameter passing to construction injection.
2、Use AbstractMetricsExport to store the public ApplicationModel of each type of Export.
3、Optimize ApplicationStatComposite, because StatComposite belongs to APP level, simplify Map<MetricsKey, Map<String, AtomicLong>> data structure to Map<MetricsKey, AtomicLong>
4、Add an inheritance relationship to the subclass of Metric(ApplicationMetric、ServiceKeyMetric、MethodMetric), so that it is more in line with the relationship between objects and improves code reusability
5、MetricsKey tag adds module id to prevent app conflicts