def collect(self, count, dst_port=util.DEFAULT_DST_PORT,
timeout=util.DEFAULT_TIMEOUT):
"""Collects latency against a set of hosts.
Args:
count: (int) number of datagrams to send each host
timeout: (float) seconds to wait for probes to return
"""
jobs = []
with futures.ThreadPoolExecutor(max_workers=50) as executor:
for host in self.metrics.keys():
logging.info('Assigning target host: %s', host)
jobs.append(executor.submit(self.method, host,
count=count,
port=dst_port,
timeout=timeout,
))
for job in futures.as_completed(jobs):
loss, rtt, host = job.result()
self.metrics[host].loss = loss
self.metrics[host].rtt = rtt
logging.info('Summary {:16}:{:>3}% loss, {:>4} ms rtt'.format(
host, loss, rtt))
评论列表
文章目录