package dns12import (3"fmt"45"github.com/cespare/xxhash"6)78// TmplClusterKey generates a unique key for the request9// to be used in the clustering process.10func (request *Request) TmplClusterKey() uint64 {11recursion := ""12if request.Recursion != nil {13recursion = fmt.Sprintf("%t", *request.Recursion)14}15inp := fmt.Sprintf("%s-%d-%d-%d-%s", request.Name, request.class, request.Retries, request.question, recursion)16return xxhash.Sum64String(inp)17}1819// IsClusterable returns true if the request is eligible to be clustered.20func (request *Request) IsClusterable() bool {21return len(request.Resolvers) <= 0 && !request.Trace && request.ID == ""22}232425