def _manage_stat(self, start_time, call_result): end_time = time.time() stat_request = stat_pb2.StatRequest() stat_request.request_duration = int((end_time - start_time) * 1000) #In milliseconds self.fill_request(stat_request, call_result) self.fill_coverages(stat_request) self.fill_parameters(stat_request) self.fill_result(stat_request, call_result) self.publish_request(stat_request)
def _manage_stat(self, start_time, call_result): end_time = time.time() stat_request = stat_pb2.StatRequest() stat_request.request_duration = int((end_time - start_time) * 1000) # In milliseconds self.fill_request(stat_request, start_time, call_result) self.fill_coverages(stat_request) self.fill_parameters(stat_request) self.fill_result(stat_request, call_result) retry = retrying.Retrying( stop_max_attempt_number=2, retry_on_exception=lambda e: not isinstance(e, pybreaker.CircuitBreakerError), ) retry.call(self.breaker.call, self.publish_request, stat_request.api, stat_request.SerializeToString())
def mock_places_stat(self, api, pbf): stat = stat_pb2.StatRequest() stat.ParseFromString(pbf) assert api == stat.api self.check_stat_places_to_publish(stat)
def mock_coverage_stat(self, api, pbf): stat = stat_pb2.StatRequest() stat.ParseFromString(pbf) assert api == stat.api self.check_stat_coverage_to_publish(stat) self.called = True
# https://groups.google.com/d/forum/navitia # www.navitia.io import kombu from navitiacommon import stat_pb2 import datetime import time connection = kombu.Connection("amqp://*****:*****@localhost:5672//") exchange_name = "stat_navitia" topic_name = "stat_sender" #exchange_object = kombu.Exchange(exchange_name, 'topic', durable = True) exchange_object = kombu.Exchange(exchange_name, type="direct") producer = connection.Producer(exchange=exchange_object) stat_request = stat_pb2.StatRequest() dt = datetime.datetime.utcnow() stat_request.request_date = int(time.mktime(dt.timetuple())) stat_request.user_id = 1 stat_request.user_name = 'Toto' stat_request.application_id = 2 stat_request.application_name = 'navitia2' stat_request.request_duration = 4500 stat_request.api = 'places' stat_request.query_string = '/v1/coverage/centre/places?q=gare' stat_request.host = 'http://navitia2-ws.ctp.dev.canaltp.fr' stat_request.client = '127.0.0.1' stat_request.response_size = 400 #Coverages: stat_coverage = stat_request.coverages.add()