Documentation ¶
Overview ¶
Package aggregate - 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: "aggregate", Name: "request_count_total", Help: "Counter of requests made per upstream.", }, []string{"to"}) RcodeCount = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "aggregate", Name: "response_rcode_count_total", Help: "Counter of requests made per upstream.", }, []string{"rcode", "to"}) RequestDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ Namespace: plugin.Namespace, Subsystem: "aggregate", Name: "request_duration_seconds", Buckets: plugin.TimeBuckets, Help: "Histogram of the time each request took.", }, []string{"to"}) HealthcheckFailureCount = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "aggregate", Name: "healthcheck_failure_count_total", Help: "Counter of the number of failed healthchecks.", }, []string{"to"}) HealthcheckBrokenCount = promauto.NewCounter(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "aggregate", Name: "healthcheck_broken_count_total", Help: "Counter of the number of complete failures of the healthchecks.", }) )
Variables declared for monitoring.
Functions ¶
This section is empty.
Types ¶
type Aggregate ¶
Aggregate represents a plugin instance that can aggregate responses from a list of DNS servers.
func New ¶
func New() *Aggregate
New returns reference to new Aggregate plugin instance with default configs.
func (*Aggregate) OnShutdown ¶
OnShutdown stops all configured clients.
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
Source Files ¶
Click to show internal directories.
Click to hide internal directories.