aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2019-03-25 17:46:44 +0000
committerGravatar Yong Tang <yong.tang.github@outlook.com> 2019-03-25 10:46:44 -0700
commit9a8c301a42433ed9bd2479ef7ab13e1d6d6e7627 (patch)
treeb2cb172f276e8a8dab4003dfe8edcc14f9e4cbd8 /plugin
parent45624a0c0a93833bc136f20f316f78dd16462e82 (diff)
downloadcoredns-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.go10
-rw-r--r--plugin/metrics/handler.go2
-rw-r--r--plugin/metrics/vars/report.go15
-rw-r--r--plugin/plugin.go3
-rw-r--r--plugin/trace/trace_test.go3
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)
}