Batch cloudwatch puts
This commit is contained in:
parent
7c3b555ee9
commit
9a7e5bb35e
2 changed files with 56 additions and 9 deletions
|
@ -1,3 +1,4 @@
|
|||
import datetime
|
||||
import logging
|
||||
import time
|
||||
|
||||
|
@ -16,19 +17,24 @@ class MetricQueue(object):
|
|||
def enable(self, maxsize=10000):
|
||||
self._queue = Queue(maxsize)
|
||||
|
||||
def put(self, *args, **kwargs):
|
||||
def put(self, name, value, **kwargs):
|
||||
if self._queue is None:
|
||||
logging.debug('No metric queue: %s %s', args, kwargs)
|
||||
logging.debug('No metric queue: %s %s %s', name, value, kwargs)
|
||||
return
|
||||
|
||||
try:
|
||||
self._queue.put_nowait((args, kwargs))
|
||||
kwargs.setdefault('timestamp', datetime.datetime.now())
|
||||
kwargs.setdefault('dimensions', {})
|
||||
self._queue.put_nowait((name, value, kwargs))
|
||||
except Full:
|
||||
logger.error('Metric queue full')
|
||||
|
||||
def get(self):
|
||||
return self._queue.get()
|
||||
|
||||
def get_nowait(self):
|
||||
return self._queue.get_nowait()
|
||||
|
||||
def time_blueprint(bp, metric_queue):
|
||||
bp.before_request(time_before_request)
|
||||
bp.after_request(time_after_request(bp.name, metric_queue))
|
||||
|
|
Reference in a new issue