def wrapper(*args, **kwargs): status_code = 500 start_time_s = time.time() try: response = function(*args, **kwargs) _, status_code, _ = BaseSerializer.get_full_response(response) finally: end_time_s = time.time() delta_s = end_time_s - start_time_s delta_ms = delta_s * 1000 key = '{status}.{suffix}'.format(status=status_code, suffix=self.key_suffix) uwsgi_metrics.timer(self.prefix, key, delta_ms) return response
def wrapper(request): status_code = 500 start_time_s = time.time() try: response = function(request) status_code = response.status_code finally: end_time_s = time.time() delta_s = end_time_s - start_time_s delta_ms = delta_s * 1000 key = '{status}.{suffix}'.format(status=status_code, suffix=self.key_suffix) uwsgi_metrics.timer(self.prefix, key, delta_ms) return response
def wrapper(*args, **kwargs): status = 500 start_time_s = time.time() try: response = function(*args, **kwargs) status = response.status_code except HTTPException as http_e: status = http_e.code raise http_e finally: end_time_s = time.time() delta_s = end_time_s - start_time_s delta_ms = delta_s * 1000 key = '{status}.{suffix}'.format(status=status, suffix=self.key_suffix) uwsgi_metrics.timer(self.prefix, key, delta_ms) return response
def test_timer(setup): with mock.patch('time.time', return_value=42.0): uwsgi_metrics.timer(__name__, 'my_timer', 0.0) emit(None) actual = uwsgi_metrics.view() expected = { 'version': __version__, 'counters': {}, 'gauges': {}, 'histograms': {}, 'meters': {}, 'timers': { 'tests.metrics_test.my_timer': { 'count': 1, 'max': 0.0, 'mean': 0.0, 'min': 0.0, 'p50': 0.0, 'p75': 0.0, 'p95': 0.0, 'p98': 0.0, 'p99': 0.0, 'p999': 0.0, 'stddev': 0.0, 'm15_rate': 0.0, 'm1_rate': 0.0, 'm5_rate': 0.0, 'mean_rate': 0.0, 'duration_units': 'milliseconds', 'rate_units': 'calls/second', } } } assert expected == actual