def getCollectors(self): collectors = {} import main file_server = main.file_server sites = file_server.sites if not sites: return collectors content_db = list(sites.values())[0].content_manager.contents.db # Connection stats collectors["connection"] = lambda: len(file_server.connections) collectors["connection_in"] = ( lambda: len([1 for connection in file_server.connections if connection.type == "in"]) ) collectors["connection_onion"] = ( lambda: len([1 for connection in file_server.connections if connection.ip.endswith(".onion")]) ) collectors["connection_ping_avg"] = ( lambda: round(1000 * helper.avg( [connection.last_ping_delay for connection in file_server.connections if connection.last_ping_delay] )) ) collectors["connection_ping_min"] = ( lambda: round(1000 * min( [connection.last_ping_delay for connection in file_server.connections if connection.last_ping_delay] )) ) collectors["connection_rev_avg"] = ( lambda: helper.avg( [connection.handshake["rev"] for connection in file_server.connections if connection.handshake] ) ) # Request stats collectors["file_bytes_recv|change"] = lambda: file_server.bytes_recv collectors["file_bytes_sent|change"] = lambda: file_server.bytes_sent collectors["request_num_recv|change"] = lambda: file_server.num_recv collectors["request_num_sent|change"] = lambda: file_server.num_sent # Limit collectors["optional_limit"] = lambda: content_db.getOptionalLimitBytes() collectors["optional_used"] = lambda: content_db.getOptionalUsedBytes() collectors["optional_downloaded"] = lambda: sum([site.settings.get("optional_downloaded", 0) for site in sites.values()]) # Peers collectors["peer"] = lambda peers: len(peers) collectors["peer_onion"] = lambda peers: len([True for peer in peers if ".onion" in peer]) # Size collectors["size"] = lambda: sum([site.settings.get("size", 0) for site in sites.values()]) collectors["size_optional"] = lambda: sum([site.settings.get("size_optional", 0) for site in sites.values()]) collectors["content"] = lambda: sum([len(site.content_manager.contents) for site in sites.values()]) return collectors
def getCollectors(self): collectors = {} file_server = sys.modules["main"].file_server sites = file_server.sites if not sites: return collectors content_db = sites.values()[0].content_manager.contents.db # Connection stats collectors["connection"] = lambda: len(file_server.connections) collectors["connection_in"] = ( lambda: len([1 for connection in file_server.connections if connection.type == "in"]) ) collectors["connection_onion"] = ( lambda: len([1 for connection in file_server.connections if connection.ip.endswith(".onion")]) ) collectors["connection_ping_avg"] = ( lambda: round(1000 * helper.avg( [connection.last_ping_delay for connection in file_server.connections if connection.last_ping_delay] )) ) collectors["connection_ping_min"] = ( lambda: round(1000 * min( [connection.last_ping_delay for connection in file_server.connections if connection.last_ping_delay] )) ) collectors["connection_rev_avg"] = ( lambda: helper.avg( [connection.handshake["rev"] for connection in file_server.connections if connection.handshake] ) ) # Request stats collectors["file_bytes_recv|change"] = lambda: file_server.bytes_recv collectors["file_bytes_sent|change"] = lambda: file_server.bytes_sent collectors["request_num_recv|change"] = lambda: file_server.num_recv collectors["request_num_sent|change"] = lambda: file_server.num_sent # Limit collectors["optional_limit"] = lambda: content_db.getOptionalLimitBytes() collectors["optional_used"] = lambda: content_db.getOptionalUsedBytes() collectors["optional_downloaded"] = lambda: sum([site.settings.get("optional_downloaded", 0) for site in sites.values()]) # Peers collectors["peer"] = lambda (peers): len(peers) collectors["peer_onion"] = lambda (peers): len([True for peer in peers if ".onion" in peer]) # Size collectors["size"] = lambda: sum([site.settings.get("size", 0) for site in sites.values()]) collectors["size_optional"] = lambda: sum([site.settings.get("size_optional", 0) for site in sites.values()]) collectors["content"] = lambda: sum([len(site.content_manager.contents) for site in sites.values()]) return collectors
def measure_baseline(net, objs): times = [] for i in range(10): times += [download(net, objs)] sleep(3) avgs = [avg(x) for x in zip(*times)] return avgs