~ricardokirkner/txstatsd/gauge-with-delta

« back to all changes in this revision

Viewing changes to txstatsd/server/configurableprocessor.py

  • Committer: Tarmac
  • Author(s): Sidnei da Silva
  • Date: 2013-06-10 15:37:47 UTC
  • mfrom: (107.1.6 cooperate)
  • Revision ID: tarmac-20130610153747-cxq2hx70b6zdro3v
[r=verterok] Use cooperator to yield more often and avoid blocking the reactor for too long.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
 
61
61
    def compose_timer_metric(self, key, duration):
62
62
        if not key in self.timer_metrics:
63
 
            metric = TimerMetricReporter(key,
64
 
                wall_time_func=self.time_function, prefix=self.message_prefix)
 
63
            metric = TimerMetricReporter(
 
64
                key, wall_time_func=self.time_function,
 
65
                prefix=self.message_prefix)
65
66
            self.timer_metrics[key] = metric
66
67
        self.timer_metrics[key].update(duration)
67
68
 
93
94
        self.meter_metrics[key].mark(value)
94
95
 
95
96
    def flush_counter_metrics(self, interval, timestamp):
96
 
        metrics = []
97
 
        events = 0
98
97
        for metric in self.counter_metrics.itervalues():
99
98
            messages = metric.report(timestamp)
100
 
            metrics.extend(messages)
101
 
            events += 1
102
 
 
103
 
        return (metrics, events)
 
99
            yield messages
104
100
 
105
101
    def flush_gauge_metrics(self, timestamp):
106
 
        metrics = []
107
 
        events = 0
108
102
        for metric in self.gauge_metrics.itervalues():
109
103
            messages = metric.report(timestamp)
110
 
            metrics.extend(messages)
111
 
            events += 1
112
 
 
113
 
        return (metrics, events)
 
104
            yield messages
114
105
 
115
106
    def flush_timer_metrics(self, percent, timestamp):
116
 
        metrics = []
117
 
        events = 0
118
107
        for metric in self.timer_metrics.itervalues():
119
108
            messages = metric.report(timestamp)
120
 
            metrics.extend(messages)
121
 
            events += 1
122
 
 
123
 
        return (metrics, events)
 
109
            yield messages