From f634414935e03c96cd51624249f25880323c07ec Mon Sep 17 00:00:00 2001 From: owlet123 Date: Wed, 27 Sep 2017 20:29:40 +0200 Subject: [PATCH] Add configurable separator for metrics and fields in opentsdb output (#3106) --- plugins/outputs/opentsdb/opentsdb.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/outputs/opentsdb/opentsdb.go b/plugins/outputs/opentsdb/opentsdb.go index b7523c7d8..2e8cb746d 100644 --- a/plugins/outputs/opentsdb/opentsdb.go +++ b/plugins/outputs/opentsdb/opentsdb.go @@ -33,6 +33,8 @@ type OpenTSDB struct { HttpBatchSize int Debug bool + + Separator string } var sampleConfig = ` @@ -53,6 +55,9 @@ var sampleConfig = ` ## Debug true - Prints OpenTSDB communication debug = false + + ## Separator separates measurements + separator = "." ` func ToLineFormat(tags map[string]string) string { @@ -133,7 +138,8 @@ func (o *OpenTSDB) WriteHttp(metrics []telegraf.Metric, u *url.URL) error { } metric := &HttpMetric{ - Metric: sanitize(fmt.Sprintf("%s%s_%s", o.Prefix, m.Name(), fieldName)), + Metric: sanitize(fmt.Sprintf("%s%s%s%s", + o.Prefix, m.Name(), o.Separator, fieldName)), Tags: tags, Timestamp: now, Value: value, @@ -183,7 +189,7 @@ func (o *OpenTSDB) WriteTelnet(metrics []telegraf.Metric, u *url.URL) error { } messageLine := fmt.Sprintf("put %s %v %s %s\n", - sanitize(fmt.Sprintf("%s%s_%s", o.Prefix, m.Name(), fieldName)), + sanitize(fmt.Sprintf("%s%s%s%s", o.Prefix, m.Name(), o.Separator, fieldName)), now, metricValue, tags) _, err := connection.Write([]byte(messageLine))