diff options
author | 2016-10-31 19:50:50 +0100 | |
---|---|---|
committer | 2016-10-31 18:50:50 +0000 | |
commit | 775d26c5e2c09e969dbf4141d82cd7ab6565e6aa (patch) | |
tree | a6afe14dbcf27da28d9c43d6817055c6db3b49f5 /middleware/cache/handler.go | |
parent | 27d893cf33b81e1a419ec58d0512bd2ecb01b8a2 (diff) | |
download | coredns-775d26c5e2c09e969dbf4141d82cd7ab6565e6aa.tar.gz coredns-775d26c5e2c09e969dbf4141d82cd7ab6565e6aa.tar.zst coredns-775d26c5e2c09e969dbf4141d82cd7ab6565e6aa.zip |
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.
Diffstat (limited to 'middleware/cache/handler.go')
-rw-r--r-- | middleware/cache/handler.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/middleware/cache/handler.go b/middleware/cache/handler.go index 146ccbc56..aae7206e2 100644 --- a/middleware/cache/handler.go +++ b/middleware/cache/handler.go @@ -44,12 +44,15 @@ func (c *Cache) get(qname string, qtype uint16, do bool) (*item, bool, bool) { k := rawKey(qname, qtype, do) if i, ok := c.ncache.Get(k); ok { + cacheHits.WithLabelValues(Denial).Inc() return i.(*item), ok, i.(*item).expired(time.Now()) } if i, ok := c.pcache.Get(k); ok { + cacheHits.WithLabelValues(Success).Inc() return i.(*item), ok, i.(*item).expired(time.Now()) } + cacheMisses.Inc() return nil, false, false } @@ -67,6 +70,20 @@ var ( Name: "capacity", Help: "The cache's capacity.", }, []string{"type"}) + + cacheHits = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "hits_total", + Help: "The count of cache hits.", + }, []string{"type"}) + + cacheMisses = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "misses_total", + Help: "The count of cache misses.", + }) ) const subsystem = "cache" @@ -74,4 +91,6 @@ const subsystem = "cache" func init() { prometheus.MustRegister(cacheSize) prometheus.MustRegister(cacheCapacity) + prometheus.MustRegister(cacheHits) + prometheus.MustRegister(cacheMisses) } |