If you're not running your own dns server (or if you must run your own to do this assume you are) how would you measure how many DNS queries per second you get for your domain?
Is there anyway to tell if a web request came using your DNS server as the authoritative source or a cached result?
The idea is to be able to tell if you are adequately able to meet demand with your existing DNS server.
Short answer: In your situation you have no way of telling.
If you have DNS hosted for you I would suggest contacting the hosting provider to discuss the matter. It's pretty certain they won't be prepared to give you access to the logs or any other real information but they should at least be able to give you an indication of whether their system is coping well of not. I imagine their system is providing DNS for other customers as well as yourself, so if it wasn't keeping pace they would be getting complaints.
If you do run the DNS server, I prefer joeqwerty's solution (a capture program like DSC) to tinkertim's solution (tuen on query logging) because query logging is:
In any case, whether you run the DNS server or not, no, you cannot say what happened at the client side. If your name server receives a DNS request, you can be reasonably sure it means it wxs not in the cache at the other side. If you don't receive the request, you know nothing.
Run a packet capture program on the DNS server, start a capture and filter for only DNS, run the capture for an hour, calculate from the data collected in the capture.
AFAIK, there's no way to know how a client resolved a DNS lookup unless you run a packet capture on the client.
While this slows down the server (a tiny bit), you can simply turn on query logging. This produces a log of queries with timestamp .. after that its relatively easy to take averages over periods of time.
Its rather easy to do in most versions of BIND, not sure about others. I use the same thing to police some DNS servers that we have no choice but to allow almost wide open recursion.