include more detailed info

This commit is contained in:
Nexus 2024-09-02 01:03:48 +01:00
parent 7b64d7e7f4
commit d58ce364f9

View file

@ -18,24 +18,35 @@ class LatencyModule(niobot.Module):
parsed = urllib.parse.urlparse(homeserver) parsed = urllib.parse.urlparse(homeserver)
loc = "https://" + parsed.netloc loc = "https://" + parsed.netloc
try: try:
start_resolv = time.perf_counter()
homeserver = await niobot.resolve_homeserver(parsed.netloc) 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 homeserver = loc
resolv = -1
async with httpx.AsyncClient(headers={"User-Agent": niobot.__user_agent__}) as client: async with httpx.AsyncClient(headers={"User-Agent": niobot.__user_agent__}) as client:
timings = [] timings = []
for rnd in range(5): for rnd in range(5):
start = time.time() start = time.perf_counter()
try: try:
res = await client.get(f"{homeserver}/_matrix/federation/v1/version") res = await client.get(f"{homeserver}/_matrix/federation/v1/version")
res.raise_for_status() res.raise_for_status()
except httpx.HTTPError: except httpx.HTTPError:
timings.append(-1) timings.append(-1)
else: else:
end = time.time() end = time.perf_counter()
timings.append(end - start) timings.append(end - start)
fed_latency = sum(timings) / len(timings) * 1000 fed_latency = sum(timings) / len(timings) * 1000
hs_target = homeserver[8:] hs_target = homeserver[8:]
return await ctx.respond( 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
)
) )