From b4ce2913fabfdabddca20d1270261bb8d2c76be0 Mon Sep 17 00:00:00 2001 From: glightfoot Date: Tue, 16 Jun 2020 16:35:55 -0400 Subject: [PATCH] add signalfx tag parsing to main benchmark tests Signed-off-by: glightfoot --- bridge_test.go | 20 ++++++++++++++++++++ exporter_benchmark_test.go | 13 ++++++++++++- line_benchmark_test.go | 3 +-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/bridge_test.go b/bridge_test.go index f008d1d..3def37a 100644 --- a/bridge_test.go +++ b/bridge_test.go @@ -179,6 +179,26 @@ func TestHandlePacket(t *testing.T) { CLabels: map[string]string{"tag1": "bar", "tag2": "baz"}, }, }, + }, { + name: "SignalFx tag extension, tags at end of name", + in: "foo.test[tag1=bar,tag2=baz]:100|c", + out: event.Events{ + &event.CounterEvent{ + CMetricName: "foo.test", + CValue: 100, + CLabels: map[string]string{"tag1": "bar", "tag2": "baz"}, + }, + }, + }, { + name: "SignalFx tag extension, tags at beginning of name", + in: "[tag1=bar,tag2=baz]foo.test:100|c", + out: event.Events{ + &event.CounterEvent{ + CMetricName: "foo.test", + CValue: 100, + CLabels: map[string]string{"tag1": "bar", "tag2": "baz"}, + }, + }, }, { name: "influxdb tag extension with tag keys unsupported by prometheus", in: "foo,09digits=0,tag.with.dots=1:100|c", diff --git a/exporter_benchmark_test.go b/exporter_benchmark_test.go index 900941b..8b0fcc8 100644 --- a/exporter_benchmark_test.go +++ b/exporter_benchmark_test.go @@ -18,6 +18,7 @@ import ( "testing" "github.com/go-kit/kit/log" + "github.com/prometheus/statsd_exporter/pkg/event" "github.com/prometheus/statsd_exporter/pkg/exporter" "github.com/prometheus/statsd_exporter/pkg/listener" @@ -34,10 +35,12 @@ func benchmarkUDPListener(times int, b *testing.B) { "foo6:100|c|#09digits:0,tag.with.dots:1", "foo10:100|c|@0.1|#tag1:bar,#tag2:baz", "foo11:100|c|@0.1|#tag1:foo:bar", + "foo.[foo=bar,dim=val]test:1|g", "foo15:200|ms:300|ms:5|c|@0.1:6|g\nfoo15a:1|c:5|ms", "some_very_useful_metrics_with_quite_a_log_name:13|c", } bytesInput := make([]string, len(input)*times) + logger := log.NewNopLogger() for run := 0; run < times; run++ { for i := 0; i < len(input); i++ { bytesInput[run*len(input)+i] = fmt.Sprintf("run%d%s", run, input[i]) @@ -46,7 +49,15 @@ func benchmarkUDPListener(times int, b *testing.B) { for n := 0; n < b.N; n++ { // there are more events than input lines, need bigger buffer events := make(chan event.Events, len(bytesInput)*times*2) - l := listener.StatsDUDPListener{EventHandler: &event.UnbufferedEventHandler{C: events}} + + l := listener.StatsDUDPListener{ + EventHandler: &event.UnbufferedEventHandler{C: events}, + Logger: logger, + UDPPackets: udpPackets, + LinesReceived: linesReceived, + SamplesReceived: samplesReceived, + TagsReceived: tagsReceived, + } for i := 0; i < times; i++ { for _, line := range bytesInput { diff --git a/line_benchmark_test.go b/line_benchmark_test.go index 68bbdec..26b3508 100644 --- a/line_benchmark_test.go +++ b/line_benchmark_test.go @@ -47,7 +47,6 @@ func benchmarkLineToEvents(times int, b *testing.B) { } } - func BenchmarkLineToEvents1(b *testing.B) { benchmarkLineToEvents(1, b) } @@ -56,4 +55,4 @@ func BenchmarkLineToEvents5(b *testing.B) { } func BenchmarkLineToEvents50(b *testing.B) { benchmarkLineToEvents(50, b) -} \ No newline at end of file +}