Implemented public DNS resolution checks
This commit is contained in:
@@ -72,14 +72,25 @@ class HealthBot(discord.Client):
|
||||
emoji = '🟢' if r['up'] else '🔴'
|
||||
code = r['status_code'] if r['status_code'] is not None else '—'
|
||||
latency = f"{r['latency_ms']} ms" if r['latency_ms'] is not None else '—'
|
||||
value = f'{emoji} `HTTP {code}` · {latency}'
|
||||
hc = f'{emoji} `HTTP {code}` · {latency}'
|
||||
if r.get('db') is not None:
|
||||
value += f' · db {r["db"]}'
|
||||
hc += f' · db {r["db"]}'
|
||||
if r.get('version'):
|
||||
value += f' · v{r["version"]}'
|
||||
hc += f' · v{r["version"]}'
|
||||
if r.get('detail'):
|
||||
value += f'\n*{r["detail"]}*'
|
||||
embed.add_field(name=r['name'], value=value, inline=False)
|
||||
hc += f' · *{r["detail"]}*'
|
||||
|
||||
lines = [f'**healthcheck** {hc}']
|
||||
for label in ('Cloudflare', 'Google'):
|
||||
d = r.get('dns', {}).get(label)
|
||||
if d and d.get('ok'):
|
||||
val = '✓ ' + ', '.join(d['ips'])
|
||||
else:
|
||||
err = d.get('error') if d else 'unknown'
|
||||
val = f'✗ {err}'
|
||||
lines.append(f'**DNS resolution ({label})** {val}')
|
||||
|
||||
embed.add_field(name=r['name'], value='\n'.join(lines), inline=False)
|
||||
embed.set_footer(text=f'Updates every {config.CHECK_INTERVAL}s')
|
||||
return embed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user