Documentation
¶
Overview ¶
Package fanout - parallel proxying DNS messages to upstream resolvers.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( RequestCount = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "fanout", Name: "request_count_total", Help: "Counter of requests made per upstream.", }, []string{"to"}) RcodeCount = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "fanout", Name: "response_rcode_count_total", Help: "Counter of requests made per upstream.", }, []string{"rcode", "to"}) RequestDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ Namespace: plugin.Namespace, Subsystem: "fanout", Name: "request_duration_seconds", Buckets: plugin.TimeBuckets, Help: "Histogram of the time each request took.", }, []string{"to"}) )
Variables declared for monitoring.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { Request(context.Context, *request.Request) (*dns.Msg, error) Endpoint() string SetTLSConfig(*tls.Config) }
Client represents the proxy for remote DNS server
type Domain ¶
type Domain interface { Get(string) Domain AddString(string) Add(string, Domain) Contains(string) bool IsFinal() bool Finish() }
Domain represents DNS domain name
type Fanout ¶
Fanout represents a plugin instance that can do async requests to list of DNS servers.
func New ¶
func New() *Fanout
New returns reference to new Fanout plugin instance with default configs.
func (*Fanout) OnShutdown ¶
OnShutdown stops all configured clients.
Click to show internal directories.
Click to hide internal directories.