diff options
author | 2017-09-14 09:36:06 +0100 | |
---|---|---|
committer | 2017-09-14 09:36:06 +0100 | |
commit | d8714e64e400ef873c2adc4d929a07d7890727b9 (patch) | |
tree | c9fa4c157e6af12eb1517654f8d23ca5d5619513 /middleware/metrics/metrics.go | |
parent | b984aa45595dc95253b91191afe7d3ee29e71b48 (diff) | |
download | coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.gz coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.zst coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.zip |
Remove the word middleware (#1067)
* Rename middleware to plugin
first pass; mostly used 'sed', few spots where I manually changed
text.
This still builds a coredns binary.
* fmt error
* Rename AddMiddleware to AddPlugin
* Readd AddMiddleware to remain backwards compat
Diffstat (limited to 'middleware/metrics/metrics.go')
-rw-r--r-- | middleware/metrics/metrics.go | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/middleware/metrics/metrics.go b/middleware/metrics/metrics.go deleted file mode 100644 index 6e06a2bf4..000000000 --- a/middleware/metrics/metrics.go +++ /dev/null @@ -1,101 +0,0 @@ -// Package metrics implement a handler and middleware that provides Prometheus metrics. -package metrics - -import ( - "log" - "net" - "net/http" - "sync" - - "github.com/coredns/coredns/middleware" - "github.com/coredns/coredns/middleware/metrics/vars" - - "github.com/prometheus/client_golang/prometheus" -) - -func init() { - prometheus.MustRegister(vars.RequestCount) - prometheus.MustRegister(vars.RequestDuration) - prometheus.MustRegister(vars.RequestSize) - prometheus.MustRegister(vars.RequestDo) - prometheus.MustRegister(vars.RequestType) - - prometheus.MustRegister(vars.ResponseSize) - prometheus.MustRegister(vars.ResponseRcode) -} - -// Metrics holds the prometheus configuration. The metrics' path is fixed to be /metrics -type Metrics struct { - Next middleware.Handler - Addr string - ln net.Listener - mux *http.ServeMux - - zoneNames []string - zoneMap map[string]bool - zoneMu sync.RWMutex -} - -// AddZone adds zone z to m. -func (m *Metrics) AddZone(z string) { - m.zoneMu.Lock() - m.zoneMap[z] = true - m.zoneNames = keys(m.zoneMap) - m.zoneMu.Unlock() -} - -// RemoveZone remove zone z from m. -func (m *Metrics) RemoveZone(z string) { - m.zoneMu.Lock() - delete(m.zoneMap, z) - m.zoneNames = keys(m.zoneMap) - m.zoneMu.Unlock() -} - -// ZoneNames returns the zones of m. -func (m *Metrics) ZoneNames() []string { - m.zoneMu.RLock() - s := m.zoneNames - m.zoneMu.RUnlock() - return s -} - -// OnStartup sets up the metrics on startup. -func (m *Metrics) OnStartup() error { - ln, err := net.Listen("tcp", m.Addr) - if err != nil { - log.Printf("[ERROR] Failed to start metrics handler: %s", err) - return err - } - - m.ln = ln - ListenAddr = m.ln.Addr().String() - - m.mux = http.NewServeMux() - m.mux.Handle("/metrics", prometheus.Handler()) - - go func() { - http.Serve(m.ln, m.mux) - }() - return nil -} - -// OnShutdown tears down the metrics on shutdown and restart. -func (m *Metrics) OnShutdown() error { - if m.ln != nil { - return m.ln.Close() - } - return nil -} - -func keys(m map[string]bool) []string { - sx := []string{} - for k := range m { - sx = append(sx, k) - } - return sx -} - -// ListenAddr is assigned the address of the prometheus listener. Its use is mainly in tests where -// we listen on "localhost:0" and need to retrieve the actual address. -var ListenAddr string |