Refactor metrics logger
This commit is contained in:
@@ -4,17 +4,17 @@ import json
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
class LoggerFactory:
|
class MetricsLoggerFactory:
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def build(self, service_config):
|
def build(self, service_config):
|
||||||
if re.match('geocoder_*', service_config.service_type):
|
if re.match('geocoder_*', service_config.service_type):
|
||||||
return GeocoderLogger(service_config)
|
return MetricsGeocoderLogger(service_config)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
class Logger(object):
|
class MetricsLogger(object):
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
|
|
||||||
def __init__(self, file_path):
|
def __init__(self, file_path):
|
||||||
@@ -30,10 +30,10 @@ class Logger(object):
|
|||||||
raise NotImplementedError('log method must be defined')
|
raise NotImplementedError('log method must be defined')
|
||||||
|
|
||||||
|
|
||||||
class GeocoderLogger(Logger):
|
class MetricsGeocoderLogger(MetricsLogger):
|
||||||
|
|
||||||
def __init__(self, service_config):
|
def __init__(self, service_config):
|
||||||
super(GeocoderLogger, self).__init__(service_config.log_path)
|
super(MetricsGeocoderLogger, self).__init__(service_config.log_path)
|
||||||
self._service_config = service_config
|
self._service_config = service_config
|
||||||
|
|
||||||
def log(self, **data):
|
def log(self, **data):
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from user import UserMetricsService
|
from user import UserMetricsService
|
||||||
from log import LoggerFactory
|
from log import MetricsLoggerFactory
|
||||||
from datetime import date
|
from datetime import date
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ class QuotaService:
|
|||||||
redis_connection)
|
redis_connection)
|
||||||
self._user_service = UserMetricsService(self._user_service_config,
|
self._user_service = UserMetricsService(self._user_service_config,
|
||||||
redis_connection)
|
redis_connection)
|
||||||
self._logger = LoggerFactory.build(user_service_config)
|
self._metrics_logger = MetricsLoggerFactory.build(user_service_config)
|
||||||
|
|
||||||
def check_user_quota(self):
|
def check_user_quota(self):
|
||||||
return self._quota_checker.check()
|
return self._quota_checker.check()
|
||||||
@@ -48,11 +48,11 @@ class QuotaService:
|
|||||||
amount=amount)
|
amount=amount)
|
||||||
|
|
||||||
def _log_service_process(self, event):
|
def _log_service_process(self, event):
|
||||||
if self._logger:
|
if self._metrics_logger:
|
||||||
if event is 'success' or event is 'empty':
|
if event is 'success' or event is 'empty':
|
||||||
self._logger.log(success=True)
|
self._metrics_logger.log(success=True)
|
||||||
elif event is 'empty':
|
elif event is 'empty':
|
||||||
self._logger.log(success=False)
|
self._metrics_logger.log(success=False)
|
||||||
|
|
||||||
|
|
||||||
class QuotaChecker:
|
class QuotaChecker:
|
||||||
|
|||||||
Reference in New Issue
Block a user