Suggest using stale DNS cache when queries are slow

This commit is contained in:
Daniel
2023-04-24 13:13:24 +02:00
parent f6d90b008a
commit 89bad684cf
6 changed files with 132 additions and 2 deletions

View File

@@ -185,6 +185,8 @@ func (tr *TCPResolver) getOrCreateResolverConn(ctx context.Context) (*tcpResolve
// Query executes the given query against the resolver.
func (tr *TCPResolver) Query(ctx context.Context, q *Query) (*RRCache, error) {
queryStarted := time.Now()
// Get resolver connection.
resolverConn, err := tr.getOrCreateResolverConn(ctx)
if err != nil {
@@ -232,6 +234,9 @@ func (tr *TCPResolver) Query(ctx context.Context, q *Query) (*RRCache, error) {
return nil, &BlockedUpstreamError{tr.resolver.Info.DescriptiveName()}
}
// Report request duration for metrics.
reportRequestDuration(queryStarted, tr.resolver)
// Create RRCache from reply and return it.
return tq.MakeCacheRecord(reply, tr.resolver.Info), nil
}