Class ComponentMetricGroup<P extends AbstractMetricGroup<?>>

  • Type Parameters:
    P - The type of the parent MetricGroup.
    All Implemented Interfaces:
    MetricGroup
    Direct Known Subclasses:
    InternalOperatorMetricGroup, JobManagerMetricGroup, JobManagerOperatorMetricGroup, JobMetricGroup, TaskManagerMetricGroup, TaskMetricGroup

    @Internal
    public abstract class ComponentMetricGroup<P extends AbstractMetricGroup<?>>
    extends AbstractMetricGroup<P>
    Abstract MetricGroup for system components (e.g., TaskManager, Job, Task, Operator).

    Usually, the scope of metrics is simply the hierarchy of the containing groups. For example the Metric "MyMetric" in group "B" nested in group "A" would have a fully scoped name of "A.B.MyMetric", with "A.B" being the Metric's scope.

    Component groups, however, have configurable scopes. This allow users to include or exclude certain identifiers from the scope. The scope for metrics belonging to the "Task" group could for example include the task attempt number (more fine grained identification), or exclude it (for continuity of the namespace across failure and recovery).

    • Constructor Detail

      • ComponentMetricGroup

        public ComponentMetricGroup​(MetricRegistry registry,
                                    String[] scope,
                                    P parent)
        Creates a new ComponentMetricGroup.
        Parameters:
        registry - registry to register new metrics with
        scope - the scope of the group
    • Method Detail

      • subComponents

        protected abstract Iterable<? extends ComponentMetricGroup> subComponents()
        Gets all component metric groups that are contained in this component metric group.
        Returns:
        All component metric groups that are contained in this component metric group.