Measure and expose DNS programming latency from Kubernetes plugin. (#3171)
For now metric is measure only for headless services. Informer has been slighlty refactored, so the code can measure latency without storing extra fields on Endpoint struct. Signed-off-by: Janek Łukaszewicz <janluk@google.com> Suggestions from code review Co-Authored-By: Chris O'Haver <cohaver@infoblox.com>
This commit is contained in:
parent
03ea2ae955
commit
d7cdb992b4
11 changed files with 330 additions and 37 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
"github.com/coredns/coredns/plugin"
|
||||
"github.com/coredns/coredns/plugin/metrics"
|
||||
"github.com/coredns/coredns/plugin/pkg/dnsutil"
|
||||
clog "github.com/coredns/coredns/plugin/pkg/log"
|
||||
"github.com/coredns/coredns/plugin/pkg/parse"
|
||||
|
@ -51,6 +52,11 @@ func setup(c *caddy.Controller) error {
|
|||
|
||||
k.RegisterKubeCache(c)
|
||||
|
||||
c.OnStartup(func() error {
|
||||
metrics.MustRegister(c, DnsProgrammingLatency)
|
||||
return nil
|
||||
})
|
||||
|
||||
dnsserver.GetConfig(c).AddPlugin(func(next plugin.Handler) plugin.Handler {
|
||||
k.Next = next
|
||||
return k
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue