[ISSUE #9719] Fix Static Variable Conflicts in Multi-Broker Metrics Management#9720
Merged
ltamber merged 9 commits intoapache:developfrom Sep 22, 2025
Merged
Conversation
- Remove all static global instance related code - Convert all static methods to instance methods - Remove static wrapper methods for backward compatibility - Add constructor and getter/setter methods for instance variables - This ensures each broker instance manages its own metrics in multi-broker scenarios
- Remove all static global instance related code - Convert all static methods to instance methods - Remove static wrapper methods for backward compatibility - Add constructor and getter/setter methods for instance variables - This ensures each broker instance manages its own Pop metrics in multi-broker scenarios
…r scenarios - Add RemotingMetricsManager instance variable to NettyRemotingAbstract - Add setter/getter methods for RemotingMetricsManager in NettyRemotingAbstract - Update writeResponse method to use instance-based metrics recording - Add writeResponse method to RemotingServer interface - Update BrokerController to set RemotingMetricsManager on NettyRemotingServer instances - Update InnerBrokerController to set RemotingMetricsManager on SubRemotingServer instances - Update all processor classes to use instance-based writeResponse calls - Update RocksDBStoreMetricsManager integration in DefaultStoreMetricsManager - Remove unused imports and clean up code This ensures each broker instance manages its own metrics independently, solving the static variable conflict issue in multi-broker processes.
- Fix ChangeInvisibleTimeProcessorTest by using @SPY instead of @mock for BrokerController - Inject BrokerMetricsManager into BrokerController using reflection - Remove unnecessary mock stubbings - Update all processors to use new static writeResponse method - Fix BrokerMetricsManager initialization issues in AckMessageProcessorTest and PopReviveServiceTest These changes ensure all related tests pass after refactoring metrics managers from static variables to instance variables.
- Remove duplicate import in PopMessageProcessor.java - Clean up unused imports in ChangeInvisibleTimeProcessorTest.java - Clean up unused imports in AckMessageProcessorTest.java - Ensure all modules compile successfully without checkstyle violations These changes complete the metrics manager refactoring from static variables to instance variables, resolving statistical information conflicts in multi-broker processes.
- Add PopMetricsManager mock to PopReviveServiceTest - Fix NullPointerException in reviveRetry method - Ensure rePutCK method is called correctly when retry fails - Test now passes successfully with proper metrics manager setup
- Remove debug logging statements from reviveMsgFromCk method - Clean up test output for better readability
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #9720 +/- ##
=============================================
- Coverage 48.29% 48.12% -0.18%
+ Complexity 12181 12141 -40
=============================================
Files 1313 1313
Lines 93233 93325 +92
Branches 11944 11958 +14
=============================================
- Hits 45031 44912 -119
- Misses 42633 42832 +199
- Partials 5569 5581 +12 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ltamber
approved these changes
Sep 22, 2025
This file contains hidden or 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
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.
Which Issue(s) This PR Fixes
Fixes #9719
Brief Description
Convert Static Variables to Instance Variables
Instance-Based Metrics Management
BrokerMetricsManagercreates and manages individual instances of metrics managersRemotingMetricsManager,PopMetricsManager, andRocksDBStoreMetricsManagerDependency Injection Pattern
NettyRemotingAbstractto acceptRemotingMetricsManagerinstanceInterface Updates
RemotingServerinterfaceNettyRemotingServerto delegate to instance methodsHow Did You Test This Change?