Show DNS performance in the PiHole GUI


I would like to propose a feature, similar like!dns-resolvers

But so that the performance is measured from our PiHole (location)

Maybe with the following features:

  • a check on configurable intervals (e.g. every 1, 5, …60 minutes)
  • with an FQDN we can specify in the settings
  • the check runs against all preconfigured DNS server(providers) and the custom dns servers we’ve specified in PiHole
  • if the query takes longer than 1 second, it should be considered as a timeout

Showing following values:

  • performance: the speed when querying each nameserver directly
  • quality: shows the up-time of nameservers. For example if a provider has 4 NS and 1 fails then quality is 75% for that location and benchmark. This means even though the provider is marked as down a real user could still get an answer thanks to the round robin algorithm used by DNS. “Quality” does not represent the real up-time of a provider
  • up-time: shows the real up-time of DNS provider. A provider is marked as down only if all nameservers go down at the same time. (in the select location)

In a first phase, I wouldn’t mind to set the settings via a config file
getting the graph displayed nicely is already a good challenge I think

Probably using the tools dnsperf/resperf

I assume something like this package would be the basic starting point for this request?