metrics

package
v0.18.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const TOP_K = 50

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockListMetrics

type BlockListMetrics struct {
	// contains filtered or unexported fields
}

func NewBlockListMetrics

func NewBlockListMetrics(name string) (*BlockListMetrics, error)

func (*BlockListMetrics) Update

func (m *BlockListMetrics) Update(n uint)

type Cache

type Cache interface {
	Stat() cache.Stats
	Len() int
	OnDrop(func())
}

type DnsMetrics

type DnsMetrics struct {
	RequestLatency      prometheus.Histogram
	ErrorCounts         *prometheus.CounterVec
	RequestCounts       *prometheus.CounterVec
	QueryCounts         *prometheus.CounterVec
	ReplyCounts         *prometheus.CounterVec
	ProviderCounts      *prometheus.CounterVec
	UniqueClients       *SafeSketch
	TopClients          *SpaceSaver
	TopDomains          *SpaceSaver
	TopBlockedDomains   *SpaceSaver
	UpstreamTTLs        *prometheus.HistogramVec
	UpstreamLatency     *prometheus.HistogramVec
	UpstreamEMA         *prometheus.GaugeVec
	CacheReaperCalls    prometheus.Counter
	DroppedCacheUpdates prometheus.Counter
	DroppedTelemetry    prometheus.Counter
	PoolEvictions       *prometheus.CounterVec
	UpstreamFailures    *prometheus.CounterVec
	PooledConnDeaths    *prometheus.CounterVec
	// contains filtered or unexported fields
}

func NewDNSMetrics

func NewDNSMetrics(cache Cache, geoIpLookup geoblock.GeoIpLookup) (*DnsMetrics, error)

type RequestSnapshot

type RequestSnapshot struct {
	// contains filtered or unexported fields
}

func NewRequestSnapshot

func NewRequestSnapshot(startTime time.Time, source string, ipAddr string) *RequestSnapshot

func (*RequestSnapshot) AddBlockedDomain

func (t *RequestSnapshot) AddBlockedDomain(domain string, cause string)

func (*RequestSnapshot) AddDomain

func (t *RequestSnapshot) AddDomain(domain string)

func (*RequestSnapshot) AddQueryCount

func (t *RequestSnapshot) AddQueryCount(queryType string, blocked bool)

func (*RequestSnapshot) AddUpstreamTTL

func (t *RequestSnapshot) AddUpstreamTTL(queryType string, ttl float64)

func (*RequestSnapshot) BlockCause added in v0.15.0

func (t *RequestSnapshot) BlockCause() string

func (*RequestSnapshot) Finished

func (t *RequestSnapshot) Finished() *RequestSnapshot

func (*RequestSnapshot) Forwarded

func (t *RequestSnapshot) Forwarded()

func (*RequestSnapshot) FromCache added in v0.10.0

func (t *RequestSnapshot) FromCache() bool

func (*RequestSnapshot) IPAddr added in v0.6.0

func (t *RequestSnapshot) IPAddr() string

func (*RequestSnapshot) IsBlocked added in v0.6.0

func (t *RequestSnapshot) IsBlocked() bool

func (*RequestSnapshot) Latency

func (t *RequestSnapshot) Latency() time.Duration

func (*RequestSnapshot) PrimaryDomain added in v0.6.0

func (t *RequestSnapshot) PrimaryDomain() string

func (*RequestSnapshot) QueryType added in v0.10.0

func (t *RequestSnapshot) QueryType() string

func (*RequestSnapshot) Rcode added in v0.10.0

func (t *RequestSnapshot) Rcode() string

func (*RequestSnapshot) Record

func (t *RequestSnapshot) Record(metrics *DnsMetrics)

func (*RequestSnapshot) SetErrorCategory

func (t *RequestSnapshot) SetErrorCategory(category string)

func (*RequestSnapshot) SetFromCache added in v0.10.0

func (t *RequestSnapshot) SetFromCache(fromCache bool)

func (*RequestSnapshot) SetPrimaryDomain added in v0.6.0

func (t *RequestSnapshot) SetPrimaryDomain(domain string)

func (*RequestSnapshot) SetQueryType added in v0.10.0

func (t *RequestSnapshot) SetQueryType(queryType string)

func (*RequestSnapshot) SetRcode

func (t *RequestSnapshot) SetRcode(rcode string)

func (*RequestSnapshot) Source added in v0.6.0

func (t *RequestSnapshot) Source() string

type SafeSketch

type SafeSketch struct {
	// contains filtered or unexported fields
}

func (*SafeSketch) Estimate

func (s *SafeSketch) Estimate() uint64

func (*SafeSketch) Insert

func (s *SafeSketch) Insert(data []byte)

type SpaceSaver

type SpaceSaver struct {
	// contains filtered or unexported fields
}

func NewSpaceSaver

func NewSpaceSaver(k int) *SpaceSaver

NewSpaceSaver creates a new tracker with space for k items.

func (*SpaceSaver) Add

func (s *SpaceSaver) Add(key string)

Add records an occurrence of key.

func (*SpaceSaver) TopN

func (s *SpaceSaver) TopN(n int) []SpaceSaverEntry

TopN returns the current top-n items (sorted by count desc).

type SpaceSaverEntry

type SpaceSaverEntry struct {
	Key   string
	Count int
	Error int
}

type StatsCollector

type StatsCollector struct {
	// contains filtered or unexported fields
}

func NewStatsCollector

func NewStatsCollector(desc string, labels []string, help string, callbackFn func() map[string]int) *StatsCollector

func (*StatsCollector) Collect

func (coll *StatsCollector) Collect(ch chan<- prometheus.Metric)

func (*StatsCollector) Describe

func (coll *StatsCollector) Describe(ch chan<- *prometheus.Desc)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL