From 18b11fc85156be8b027c61665c80e239324e2ebf Mon Sep 17 00:00:00 2001 From: Malcolm Akinje Date: Thu, 7 Jun 2018 11:21:17 -0400 Subject: [PATCH] Normalizing Response Duration in Log Plugin (#1860) * Current stage of the log files. Test need to be done as well as formatting of times. * Finished testing. All altered classes test pass along with my additions * Updated the replacer package to print the units as well. May take out. * Changed the time units to be within the rules. Fixed the test as well. * Fixed some tests, updated the readme, fixed the replacer class. * Updates of standardizing only to seconds in response duration. Need to revert README. * Reverted readme. * Added a small test in new replacer. * Changed replacer to inline the strconv for duration. --- plugin/pkg/replacer/replacer.go | 2 +- plugin/pkg/replacer/replacer_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin/pkg/replacer/replacer.go b/plugin/pkg/replacer/replacer.go index 1775f7c24..b9e1fcaa6 100644 --- a/plugin/pkg/replacer/replacer.go +++ b/plugin/pkg/replacer/replacer.go @@ -55,7 +55,7 @@ func New(r *dns.Msg, rr *dnstest.Recorder, emptyValue string) Replacer { } rep.replacements["{rcode}"] = rcode rep.replacements["{rsize}"] = strconv.Itoa(rr.Len) - rep.replacements["{duration}"] = time.Since(rr.Start).String() + rep.replacements["{duration}"] = strconv.FormatFloat(time.Since(rr.Start).Seconds(), 'f', -1, 64) + "s" if rr.Msg != nil { rep.replacements[headerReplacer+"rflags}"] = flagsToString(rr.Msg.MsgHdr) } diff --git a/plugin/pkg/replacer/replacer_test.go b/plugin/pkg/replacer/replacer_test.go index 65bb8280f..2fcaafc92 100644 --- a/plugin/pkg/replacer/replacer_test.go +++ b/plugin/pkg/replacer/replacer_test.go @@ -1,6 +1,7 @@ package replacer import ( + "strings" "testing" "github.com/coredns/coredns/plugin/pkg/dnstest" @@ -30,6 +31,9 @@ func TestNewReplacer(t *testing.T) { if v.replacements["{size}"] != "29" { // size of request t.Errorf("Expected size to be 29, got %q", v.replacements["{size}"]) } + if !strings.Contains(v.replacements["{duration}"], "s") { + t.Errorf("Expected units of time to be in seconds") + } default: t.Fatal("Return Value from New Replacer expected pass type assertion into a replacer type\n")