[ https://issues.apache.org/jira/browse/GEODE-7171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16960097#comment-16960097 ]
ASF subversion and git services commented on GEODE-7171: -------------------------------------------------------- Commit 95745912c14762cedb397ae97fd7d8e0f63a385f in geode's branch refs/heads/feature/GEODE-7258 from Dale Emery [ https://gitbox.apache.org/repos/asf?p=geode.git;h=9574591 ] GEODE-7171: Encapsulate metrics session (#4203) Metrics session responsibilities are starting to appear in too many parts of Geode. This change encapsulates those responsibilities into a single class. Changes to core Geode classes: - GemFireCacheImpl no longer holds a meter registry or the set of "user" registries added by the cache builder. - InternalCacheBuilder no longer constructs objects on behalf of the metrics session. Instead, it gathers meter registries and other details into a MetricsService.Builder, which it passes to the InternalDistributedSystem.Builder. - InternalDistributedSystem no longer knows about client meter registries. Instead, it holds a MetricsService, which remembers its builder. During reconnect, the InternalDistributedSystem retrieves the builder from its metrics service, and uses the builder to build a similar metrics service in the reconnected system. New classes and interfaces (org.apache.geode.metrics.internal): - StandardMeterBinder - Binds standard meter binders to the meter registry. - close() closes the closeable binders, freeing their resources. - MetricsService interface - Extends MetricsSession. - Adds methods to start and stop the service, and to access the service's meter registry. - Adds a method that returns the builder that built the metrics service, so that reconnect can use the same builder to build the metrics service for the reconnected system. - InternalDistributedSystemMetricsService - Implements MetricsService. - Creates and retains a composite meter registry to manage meters. - Configures the composite composite registry: - Adds common tags that describe the system - Adds client meter registries to the composite. - Applies a StandardMeterBinder to add standard meters to the registry. - Discovers, starts, and stops metrics publishing services. - Adds and removes sub-registries as instructed by publishing services. - When stopped, stops each publishing service, closes all closeable meter binders, removes all sub-registries, and closes its composite meter registry. - MetricsService.Builder interface - InternalDistriburtedSystemMetricsService.Builder - Implements MetricsService.Builder - Accumulates and retains constructor parameters for the eventual InternalDistributedSystemMetricsService. - In particular, maintains a collection of meter registries added by the cache builder. It calls these 'persistent' registries, because they will persist across reconnects. Other changes: - Added MetricsSession parameter to MetricsPublishingService.stop(). Authored-by: Dale Emery <dem...@pivotal.io> > Encapsulate metrics session responsibilities > -------------------------------------------- > > Key: GEODE-7171 > URL: https://issues.apache.org/jira/browse/GEODE-7171 > Project: Geode > Issue Type: Improvement > Components: statistics > Reporter: Dale Emery > Priority: Major > Time Spent: 3.5h > Remaining Estimate: 0h > > Too many parts of Geode are starting to know too much about the details of a > metrics session. We should encapsulate metrics session details and provide > appropriate methods to interact with the session. -- This message was sent by Atlassian Jira (v8.3.4#803005)