diff --git a/plugins/inputs/statsd/statsd.go b/plugins/inputs/statsd/statsd.go index 6e72e632f..555f6d45b 100644 --- a/plugins/inputs/statsd/statsd.go +++ b/plugins/inputs/statsd/statsd.go @@ -348,7 +348,7 @@ func (s *Statsd) parseStatsdLine(line string) error { tagstr := segment[1:] tags := strings.Split(tagstr, ",") for _, tag := range tags { - ts := strings.Split(tag, ":") + ts := strings.SplitN(tag, ":", 2) var k, v string switch len(ts) { case 1: diff --git a/plugins/inputs/statsd/statsd_test.go b/plugins/inputs/statsd/statsd_test.go index 3102030fe..bb0d68c16 100644 --- a/plugins/inputs/statsd/statsd_test.go +++ b/plugins/inputs/statsd/statsd_test.go @@ -693,7 +693,7 @@ func TestParse_DataDogTags(t *testing.T) { s.ParseDataDogTags = true lines := []string{ - "my_counter:1|c|#host:localhost,environment:prod", + "my_counter:1|c|#host:localhost,environment:prod,endpoint:/:tenant?/oauth/ro", "my_gauge:10.1|g|#live", "my_set:1|s|#host:localhost", "my_timer:3|ms|@0.1|#live,host:localhost", @@ -703,6 +703,7 @@ func TestParse_DataDogTags(t *testing.T) { "my_counter": map[string]string{ "host": "localhost", "environment": "prod", + "endpoint": "/:tenant?/oauth/ro", }, "my_gauge": map[string]string{