From d58ce364f9025cd793a4ef4c69e5cf2d42d0281f Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Mon, 2 Sep 2024 01:03:48 +0100 Subject: [PATCH] include more detailed info --- app/modules/latency.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/modules/latency.py b/app/modules/latency.py index 895458b..ec48f6a 100644 --- a/app/modules/latency.py +++ b/app/modules/latency.py @@ -18,24 +18,35 @@ class LatencyModule(niobot.Module): parsed = urllib.parse.urlparse(homeserver) loc = "https://" + parsed.netloc try: + start_resolv = time.perf_counter() homeserver = await niobot.resolve_homeserver(parsed.netloc) - except ValueError: + end_resolv = time.perf_counter() + resolv = round(end_resolv - start_resolv, 2) + except ValueError as e: + await ctx.respond("\N{WARNING SIGN} Failed to resolve homeserver: " + str(e)) homeserver = loc + resolv = -1 + async with httpx.AsyncClient(headers={"User-Agent": niobot.__user_agent__}) as client: timings = [] for rnd in range(5): - start = time.time() + start = time.perf_counter() try: res = await client.get(f"{homeserver}/_matrix/federation/v1/version") res.raise_for_status() except httpx.HTTPError: timings.append(-1) else: - end = time.time() + end = time.perf_counter() timings.append(end - start) fed_latency = sum(timings) / len(timings) * 1000 hs_target = homeserver[8:] return await ctx.respond( - "Latency: {:,.2f}ms (federation latency to {!r}: {:,.2f}ms)".format(latency, hs_target, fed_latency) + "Latency: {:,.2f}ms ({:,.2f}ms to resolve homeserver, federation latency to {!r}: {:,.2f}ms)".format( + latency, + resolv * 1000, + hs_target, + fed_latency + ) )