mirror of
https://github.com/coredns/coredns.git
synced 2025-11-21 11:22:20 -05:00
Add metrics for cache hits/misses (#375)
* Add metrics for cache hits/misses Add counters for cache middleware hits and misses. * Add test for cache middleware hit/miss counters. * Fix cache hit metric incrementing. * Add cache hit/miss metrics to dnssec middleware. * Update README metric documentation.
This commit is contained in:
@@ -43,5 +43,7 @@ If monitoring is enabled (via the *prometheus* directive) then the following met
|
||||
|
||||
* coredns_dnssec_cache_size{type} - total elements in the cache, type is "signature".
|
||||
* coredns_dnssec_cache_capacity{type} - total capacity of the cache, type is "signature".
|
||||
* coredns_dnssec_cache_hits_total - Counter of cache hits.
|
||||
* coredns_dnssec_cache_misses_total - Counter of cache misses.
|
||||
|
||||
## Examples
|
||||
|
||||
@@ -115,8 +115,10 @@ func (d Dnssec) set(key string, sigs []dns.RR) {
|
||||
|
||||
func (d Dnssec) get(key string) ([]dns.RR, bool) {
|
||||
if s, ok := d.cache.Get(key); ok {
|
||||
cacheHits.Inc()
|
||||
return s.([]dns.RR), true
|
||||
}
|
||||
cacheMisses.Inc()
|
||||
return nil, false
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,20 @@ var (
|
||||
Name: "cache_capacity",
|
||||
Help: "The dnssec cache's capacity.",
|
||||
}, []string{"type"})
|
||||
|
||||
cacheHits = prometheus.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: middleware.Namespace,
|
||||
Subsystem: subsystem,
|
||||
Name: "cache_hits_total",
|
||||
Help: "The count of cache hits.",
|
||||
})
|
||||
|
||||
cacheMisses = prometheus.NewCounter(prometheus.CounterOpts{
|
||||
Namespace: middleware.Namespace,
|
||||
Subsystem: subsystem,
|
||||
Name: "cache_misses_total",
|
||||
Help: "The count of cache misses.",
|
||||
})
|
||||
)
|
||||
|
||||
// Name implements the Handler interface.
|
||||
@@ -63,4 +77,6 @@ const subsystem = "dnssec"
|
||||
func init() {
|
||||
prometheus.MustRegister(cacheSize)
|
||||
prometheus.MustRegister(cacheCapacity)
|
||||
prometheus.MustRegister(cacheHits)
|
||||
prometheus.MustRegister(cacheMisses)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user