Cameron Lee created SAMZA-2671:
----------------------------------

             Summary: Clean up how Samza wires metrics and handles lifecycle of 
metrics objects
                 Key: SAMZA-2671
                 URL: https://issues.apache.org/jira/browse/SAMZA-2671
             Project: Samza
          Issue Type: Improvement
            Reporter: Cameron Lee


There is some opportunity for improvement in how Samza code handles metrics:
 # Use more dependency injection: There are multiple places where metrics 
registries (see "MetricsRegistryMap" constructor) and metrics reporters (see 
"MetricsReporterLoader.getMetricsReporters") get created. Ideally, this should 
not be necessary.
 # Clean up metrics registration: "MetricsReporter.register" gets called in too 
many places, so it is hard to track when it is happening.
 # Define ordering for "MetricsReporter.register" and "MetricsReporter.start": 
It looks like there is no contract on the ordering of 
"MetricsReporter.register" and "MetricsReporter.start". Some implementations 
might assume an ordering while others don't. We should clarify that.
 # Improve lifecycle management code flow for "MetricsReporter.register" and 
"MetricsReporter.start": It looks like the current code attempts to do all 
"register" calls before any "start" call. Therefore, the reporters need to be 
started somewhat deep into the lifecycle of the Samza components in general. It 
is hard to keep track of when this happens for each separate component. For 
example, for "ClusterBasedJobCoordinator", "MetricsReporter.start" gets called 
inside "ContainerProcessManager.start", but that's not obvious unless someone 
steps into the code flow.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to