avg.py 678 B

123456789101112131415161718192021222324
  1. from __future__ import absolute_import
  2. from kafka.metrics.stats.sampled_stat import AbstractSampledStat
  3. class Avg(AbstractSampledStat):
  4. """
  5. An AbstractSampledStat that maintains a simple average over its samples.
  6. """
  7. def __init__(self):
  8. super(Avg, self).__init__(0.0)
  9. def update(self, sample, config, value, now):
  10. sample.value += value
  11. def combine(self, samples, config, now):
  12. total_sum = 0
  13. total_count = 0
  14. for sample in samples:
  15. total_sum += sample.value
  16. total_count += sample.event_count
  17. if not total_count:
  18. return 0
  19. return float(total_sum) / total_count