From 0cb013657028a559b0e5ebe9fb147989cd925562 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Tue, 29 Sep 2020 10:43:58 +0200 Subject: [PATCH] Add proto and remote tags to trace plugin (#4159) * Add proto and client-ip trace tags Signed-off-by: Adam Malcontenti-Wilson * Commit my own suggestion Signed-off-by: Miek Gieben Co-authored-by: Adam Malcontenti-Wilson --- plugin/trace/trace.go | 10 +++++++--- plugin/trace/trace_test.go | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/plugin/trace/trace.go b/plugin/trace/trace.go index be62b63f3..b74cc5b33 100644 --- a/plugin/trace/trace.go +++ b/plugin/trace/trace.go @@ -25,9 +25,11 @@ import ( ) const ( - tagName = "coredns.io/name" - tagType = "coredns.io/type" - tagRcode = "coredns.io/rcode" + tagName = "coredns.io/name" + tagType = "coredns.io/type" + tagRcode = "coredns.io/rcode" + tagProto = "coredns.io/proto" + tagRemote = "coredns.io/remote" ) type trace struct { @@ -107,6 +109,8 @@ func (t *trace) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) span.SetTag(tagName, req.Name()) span.SetTag(tagType, req.Type()) + span.SetTag(tagProto, req.Proto()) + span.SetTag(tagRemote, req.IP()) span.SetTag(tagRcode, rcode.ToString(rw.Rcode)) return status, err diff --git a/plugin/trace/trace_test.go b/plugin/trace/trace_test.go index 9b1105129..e06e3e8ee 100644 --- a/plugin/trace/trace_test.go +++ b/plugin/trace/trace_test.go @@ -88,6 +88,12 @@ func TestTrace(t *testing.T) { if rootSpan.Tag(tagType) != req.Type() { t.Errorf("Unexpected span tag: rootSpan.Tag(%v): want %v, got %v", tagType, req.Type(), rootSpan.Tag(tagType)) } + if rootSpan.Tag(tagProto) != req.Proto() { + t.Errorf("Unexpected span tag: rootSpan.Tag(%v): want %v, got %v", tagProto, req.Proto(), rootSpan.Tag(tagProto)) + } + if rootSpan.Tag(tagRemote) != req.IP() { + t.Errorf("Unexpected span tag: rootSpan.Tag(%v): want %v, got %v", tagRemote, req.IP(), rootSpan.Tag(tagRemote)) + } if rootSpan.Tag(tagRcode) != rcode.ToString(tc.rcode) { t.Errorf("Unexpected span tag: rootSpan.Tag(%v): want %v, got %v", tagRcode, rcode.ToString(tc.rcode), rootSpan.Tag(tagRcode)) }