def __log(self, level, message): event = Event(self.name) event.data = Log(time(), level, getpid(), self.name, message) while True: try: self.logs.put(event) break except QueueFull: sleep(0.1)
def metricProducer(self): '''A greenthread which collects the queue metrics at the defined interval.''' self.__run.wait() hostname = socket.gethostname() while self.loop(): for queue in self.pool.listQueues(names=True): for metric, value in self.pool.getQueue(queue).stats().iteritems(): event = Wishbone_Event(self.name) event.data = Metric(time=time(), type="wishbone", source=hostname, name="module.%s.queue.%s.%s" % (self.name, queue, metric), value=value, unit="", tags=()) self.submit(event, self.pool.queue.metrics) sleep(self.frequency)