diff options
author | 2019-03-25 17:46:44 +0000 | |
---|---|---|
committer | 2019-03-25 10:46:44 -0700 | |
commit | 9a8c301a42433ed9bd2479ef7ab13e1d6d6e7627 (patch) | |
tree | b2cb172f276e8a8dab4003dfe8edcc14f9e4cbd8 /plugin | |
parent | 45624a0c0a93833bc136f20f316f78dd16462e82 (diff) | |
download | coredns-9a8c301a42433ed9bd2479ef7ab13e1d6d6e7627.tar.gz coredns-9a8c301a42433ed9bd2479ef7ab13e1d6d6e7627.tar.zst coredns-9a8c301a42433ed9bd2479ef7ab13e1d6d6e7627.zip |
Remove server addr from the context (#2722)
* more
Signed-off-by: Miek Gieben <miek@miek.nl>
* Remove server addr from the context
This was added twice, just leave the server which also holds the
address.
Conflicts with #2719 but should be easy to fix.
Signed-off-by: Miek Gieben <miek@miek.nl>
* doesn't need server context
Signed-off-by: Miek Gieben <miek@miek.nl>
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/metrics/context.go | 10 | ||||
-rw-r--r-- | plugin/metrics/handler.go | 2 | ||||
-rw-r--r-- | plugin/metrics/vars/report.go | 15 | ||||
-rw-r--r-- | plugin/plugin.go | 3 | ||||
-rw-r--r-- | plugin/trace/trace_test.go | 3 |
5 files changed, 11 insertions, 22 deletions
diff --git a/plugin/metrics/context.go b/plugin/metrics/context.go index 7ee25ef4a..da6bdb12d 100644 --- a/plugin/metrics/context.go +++ b/plugin/metrics/context.go @@ -3,7 +3,7 @@ package metrics import ( "context" - "github.com/coredns/coredns/plugin/metrics/vars" + "github.com/coredns/coredns/core/dnsserver" ) // WithServer returns the current server handling the request. It returns the @@ -15,4 +15,10 @@ import ( // Basic usage with a metric: // // <metric>.WithLabelValues(metrics.WithServer(ctx), labels..).Add(1) -func WithServer(ctx context.Context) string { return vars.WithServer(ctx) } +func WithServer(ctx context.Context) string { + srv := ctx.Value(dnsserver.Key{}) + if srv == nil { + return "" + } + return srv.(*dnsserver.Server).Addr +} diff --git a/plugin/metrics/handler.go b/plugin/metrics/handler.go index 71132c274..0dbc053da 100644 --- a/plugin/metrics/handler.go +++ b/plugin/metrics/handler.go @@ -26,7 +26,7 @@ func (m *Metrics) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg rw := dnstest.NewRecorder(w) status, err := plugin.NextOrFailure(m.Name(), m.Next, ctx, rw, r) - vars.Report(ctx, state, zone, rcode.ToString(rw.Rcode), rw.Len, rw.Start) + vars.Report(WithServer(ctx), state, zone, rcode.ToString(rw.Rcode), rw.Len, rw.Start) return status, err } diff --git a/plugin/metrics/vars/report.go b/plugin/metrics/vars/report.go index f354b6551..fe6a5dccd 100644 --- a/plugin/metrics/vars/report.go +++ b/plugin/metrics/vars/report.go @@ -1,17 +1,15 @@ package vars import ( - "context" "time" - "github.com/coredns/coredns/plugin" "github.com/coredns/coredns/request" "github.com/miekg/dns" ) // Report reports the metrics data associated with request. -func Report(ctx context.Context, req request.Request, zone, rcode string, size int, start time.Time) { +func Report(server string, req request.Request, zone, rcode string, size int, start time.Time) { // Proto and Family. net := req.Proto() fam := "1" @@ -19,8 +17,6 @@ func Report(ctx context.Context, req request.Request, zone, rcode string, size i fam = "2" } - server := WithServer(ctx) - typ := req.QType() RequestCount.WithLabelValues(server, zone, net, fam).Inc() RequestDuration.WithLabelValues(server, zone).Observe(time.Since(start).Seconds()) @@ -41,15 +37,6 @@ func Report(ctx context.Context, req request.Request, zone, rcode string, size i ResponseRcode.WithLabelValues(server, zone, rcode).Inc() } -// WithServer returns the current server handling the request. -func WithServer(ctx context.Context) string { - srv := ctx.Value(plugin.ServerCtx{}) - if srv == nil { - return "" - } - return srv.(string) -} - var monitorType = map[uint16]struct{}{ dns.TypeAAAA: struct{}{}, dns.TypeA: struct{}{}, diff --git a/plugin/plugin.go b/plugin/plugin.go index 3ff518ab8..4a4448f62 100644 --- a/plugin/plugin.go +++ b/plugin/plugin.go @@ -106,6 +106,3 @@ var TimeBuckets = prometheus.ExponentialBuckets(0.00025, 2, 16) // from 0.25ms t // ErrOnce is returned when a plugin doesn't support multiple setups per server. var ErrOnce = errors.New("this plugin can only be used once per Server Block") - -// ServerCtx is the context key to pass server address context to the plugins handling the request. -type ServerCtx struct{} diff --git a/plugin/trace/trace_test.go b/plugin/trace/trace_test.go index 7fb1cb85f..bc43b980e 100644 --- a/plugin/trace/trace_test.go +++ b/plugin/trace/trace_test.go @@ -4,7 +4,6 @@ import ( "context" "testing" - "github.com/coredns/coredns/plugin" "github.com/coredns/coredns/plugin/pkg/dnstest" "github.com/coredns/coredns/plugin/pkg/rcode" "github.com/coredns/coredns/plugin/test" @@ -69,7 +68,7 @@ func TestTrace(t *testing.T) { every: 1, tracer: m, } - ctx := context.WithValue(context.TODO(), plugin.ServerCtx{}, server) + ctx := context.TODO() if _, err := tr.ServeDNS(ctx, w, tc.question); err != nil { t.Fatalf("Error during tr.ServeDNS(ctx, w, %v): %v", tc.question, err) } |