def feedback(request): global nb_feedback if not request.path_qs.startswith("/feedback.py"): raise HTTPBadRequest('Malformed input') parameters = request.params # override real IP for testing ip = parameters.get('ip', request.client_addr) # If the client have a private ip, it is on the same network as # the server. So we use the server ip as there isn't have geoip # info for private ip. int_ip = resources.get_int_from_ip(ip) if ((167772160 <= int_ip <= 184549375) or (2886729728 <= int_ip <= 2887778303) or (3232235520 <= int_ip <= 3232301055)): # is_private ip = server_ip # Get parameters measurements = parameters.get('measurements', '') html = not bool(parameters.get('text_only', '')) full_page = bool(parameters.get('full_page', '')) # Limit the number of ip used in the analysis to limit the time. if len(measurements) == '': raise HTTPBadRequest('Malformed input. No measurements received.') ms = [m for m in measurements.split('-') if m] if time_table_idx == 0: nb = 20 elif time_table_idx == 1: nb = 15 else: nb = 10 measurements = '-'.join(ms[-nb:]) response = display_stats(ip, measurements, html, full_page) if full_page: response = response.encode('utf-8') content_type = 'text/html' if html else 'text/plain' else: response = json.dumps({'content': response}) # already utf-8 encoded # wrap the reponse in jsonp response = parameters.get('jsoncallback', 'jsoncallback') + '(' + response + ')' content_type = 'application/json' res = Response(response, content_type=content_type, charset='utf-8') nb_feedback += 1 return res
os.path.join(os.path.dirname(__file__), '../../../models/work_in_progress/src') ] from graph import display_stats, load_model import numpy # Load the model used by display_stats load_model() ip = "132.204.25.12" measurements = ip one = lambda: '.'.join(map(str, numpy.random.randint( 256, size=4))) + ',' + str( max(51.0, numpy.random.normal(loc=400.0, scale=200.0))) measurements = '-'.join([one() for i in xrange(100)]) for i in range(10000): response = display_stats(ip, measurements, False, False) elif False: # speed test get_pings nb_iter = 100000 # Speed test get_pings t0 = time.time() for i in range(nb_iter): # get_pings("132.204.25." + str(i%255)) get_pings("132.204.25.12") t1 = time.time() print "Time per request (ms):", (t1 - t0) / float(nb_iter) * 1000 else: # speed test get_geoip_data nb_iter = 3000 # Speed test init_geoip() pings = get_pings("132.204.25.12") t0 = time.time()
if __name__ == "__main__": if True: # speed test display_stats for feedback import sys sys.path[0:0] = [os.path.join(os.path.dirname(__file__), '../../../models/work_in_progress/src')] from graph import display_stats, load_model import numpy # Load the model used by display_stats load_model() ip = "132.204.25.12" measurements = ip one = lambda : '.'.join(map(str, numpy.random.randint(256, size=4))) + ',' + str(max(51.0, numpy.random.normal(loc=400.0, scale=200.0))) measurements = '-'.join([one() for i in xrange(100)]) for i in range(10000): response = display_stats(ip, measurements, False, False) elif False: # speed test get_pings nb_iter = 100000 # Speed test get_pings t0 = time.time() for i in range(nb_iter): # get_pings("132.204.25." + str(i%255)) get_pings("132.204.25.12") t1 = time.time() print "Time per request (ms):", (t1 - t0) / float(nb_iter) * 1000 else: # speed test get_geoip_data nb_iter = 3000 # Speed test init_geoip() pings = get_pings("132.204.25.12") t0 = time.time()