Esempio n. 1
0
    def fill_request(self, stat_request, call_result):
        """
        Remplir requests
        """
        dt = datetime.utcnow()
        stat_request.request_date = int(time.mktime(dt.timetuple()))
        # Note: for stat we don't want to abort if no token has been
        # given (it's up to the authentication process)
        user = get_user(token=get_token(), abort_if_no_token=False)
        if user is not None:
            stat_request.user_id = user.id
            stat_request.user_name = user.login
            if user.end_point_id:
                stat_request.end_point_id = user.end_point_id
                stat_request.end_point_name = user.end_point.name

        stat_request.application_id = -1
        app_name = get_app_name(get_token())
        if app_name:
            stat_request.application_name = app_name
        else:
            stat_request.application_name = ''
        stat_request.api = request.endpoint
        stat_request.host = request.host_url
        if request.remote_addr and \
                not request.headers.getlist("X-Forwarded-For"):
            stat_request.client = request.remote_addr
        elif request.headers.getlist("X-Forwarded-For"):
            stat_request.client = request.headers.getlist("X-Forwarded-For")[0]
        stat_request.path = request.path

        stat_request.response_size = sys.getsizeof(call_result[0])
Esempio n. 2
0
    def fill_request(self, stat_request, start_time, call_result):
        """
        fill stat requests message (protobuf)
        """
        stat_request.request_date = int(start_time)
        # Note: for stat we don't want to abort if no token has been
        # given (it's up to the authentication process)
        token = get_token()
        user = get_user(token=token, abort_if_no_token=False)

        if user is not None:
            stat_request.user_id = user.id
            stat_request.user_name = user.login
            if user.end_point_id:
                stat_request.end_point_id = user.end_point_id
                stat_request.end_point_name = user.end_point.name
        if token is not None:
            stat_request.token = token
        stat_request.application_id = -1
        app_name = get_app_name(token)
        if app_name:
            stat_request.application_name = app_name
        else:
            stat_request.application_name = ''
        stat_request.api = request.endpoint
        stat_request.host = request.host_url
        if request.remote_addr and not request.headers.getlist("X-Forwarded-For"):
            stat_request.client = request.remote_addr
        elif request.headers.getlist("X-Forwarded-For"):
            stat_request.client = request.headers.getlist("X-Forwarded-For")[0]
        stat_request.path = request.path

        stat_request.response_size = sys.getsizeof(call_result[0])

        self.fill_info_response(stat_request.info_response, call_result)
Esempio n. 3
0
def add_info_newrelic(response, *args, **kwargs):
    try:
        record_custom_parameter('navitia-request-id', request.id)
        token = get_token()
        user = get_user(token=token, abort_if_no_token=False)
        app_name = get_app_name(token)
        if user:
            record_custom_parameter('user_id', str(user.id))
        record_custom_parameter('token_name', app_name)
        coverages = get_used_coverages()
        if coverages:
            record_custom_parameter('coverage', coverages[0])
    except:
        logger = logging.getLogger(__name__)
        logger.exception('error while reporting to newrelic:')
    return response