Documentation ¶
Overview ¶
Package fanmerge - 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: "fanmerge", Name: "request_count_total", Help: "Counter of requests made per upstream.", }, []string{"to"}) RcodeCount = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "fanmerge", Name: "response_rcode_count_total", Help: "Counter of requests made per upstream.", }, []string{"rcode", "to"}) RequestDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ Namespace: plugin.Namespace, Subsystem: "fanmerge", 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: "fanmerge", Name: "healthcheck_failure_count_total", Help: "Counter of the number of failed healthchecks.", }, []string{"to"}) HealthcheckBrokenCount = promauto.NewCounter(prometheus.CounterOpts{ Namespace: plugin.Namespace, Subsystem: "fanmerge", 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 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 Fanmerge ¶
Fanmerge represents a plugin instance that can do async requests to list of DNS servers.
func New ¶
func New() *Fanmerge
New returns reference to new Fanmerge plugin instance with default configs.
func (*Fanmerge) OnShutdown ¶
OnShutdown stops all configured clients.
Source Files ¶
Click to show internal directories.
Click to hide internal directories.