123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from __future__ import absolute_import
- import abc
- class AbstractMetricsReporter(object):
- """
- An abstract class to allow things to listen as new metrics
- are created so they can be reported.
- """
- __metaclass__ = abc.ABCMeta
- @abc.abstractmethod
- def init(self, metrics):
- """
- This is called when the reporter is first registered
- to initially register all existing metrics
- Arguments:
- metrics (list of KafkaMetric): All currently existing metrics
- """
- raise NotImplementedError
- @abc.abstractmethod
- def metric_change(self, metric):
- """
- This is called whenever a metric is updated or added
- Arguments:
- metric (KafkaMetric)
- """
- raise NotImplementedError
- @abc.abstractmethod
- def metric_removal(self, metric):
- """
- This is called whenever a metric is removed
- Arguments:
- metric (KafkaMetric)
- """
- raise NotImplementedError
- @abc.abstractmethod
- def configure(self, configs):
- """
- Configure this class with the given key-value pairs
- Arguments:
- configs (dict of {str, ?})
- """
- raise NotImplementedError
- @abc.abstractmethod
- def close(self):
- """Called when the metrics repository is closed."""
- raise NotImplementedError
|