I would like to collect information about how log it took to get a response and a TTL. Could it be done without running tcpdump?
I'm going to assume you are talking about servicing recursive queries because you are asking for the TTL, too. Queries that are served from authoritative data (as opposed to served from a recursive server's cache) are always going to have whatever TTL is set for that resource record in the zone data.
Do you want to get this information for every query that your recursive server processes? If so, you're probably out of luck, as the server really has no idea how much time has elapsed before it receives a query so it's not a great place to measure end-to-end query time.
Or perhaps you just want to "ping" your server periodically and see how long the server takes to respond to a query? The latter is easily accomplished from a client machine with tools like "dig", which report the time taken by the query and the TTL of any resource records returned.
You need to explain what you're trying to do more clearly, and I would recommend you explain not just how you are trying to measure whatever you are trying to measure but what problem you are trying to solve by collecting this data, as there may be a better way to go about it.