Add Splunk Metrics serializer (#4339)
This commit is contained in:
committed by
Daniel Nelson
parent
e85a9e0956
commit
c80aab0445
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/influxdata/telegraf/plugins/serializers/graphite"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/influx"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/json"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/splunkmetric"
|
||||
)
|
||||
|
||||
// SerializerOutput is an interface for output plugins that are able to
|
||||
@@ -60,6 +61,9 @@ type Config struct {
|
||||
|
||||
// Timestamp units to use for JSON formatted output
|
||||
TimestampUnits time.Duration
|
||||
|
||||
// Include HEC routing fields for splunkmetric output
|
||||
HecRouting bool
|
||||
}
|
||||
|
||||
// NewSerializer a Serializer interface based on the given config.
|
||||
@@ -73,6 +77,8 @@ func NewSerializer(config *Config) (Serializer, error) {
|
||||
serializer, err = NewGraphiteSerializer(config.Prefix, config.Template, config.GraphiteTagSupport)
|
||||
case "json":
|
||||
serializer, err = NewJsonSerializer(config.TimestampUnits)
|
||||
case "splunkmetric":
|
||||
serializer, err = NewSplunkmetricSerializer(config.HecRouting)
|
||||
default:
|
||||
err = fmt.Errorf("Invalid data format: %s", config.DataFormat)
|
||||
}
|
||||
@@ -83,6 +89,10 @@ func NewJsonSerializer(timestampUnits time.Duration) (Serializer, error) {
|
||||
return json.NewSerializer(timestampUnits)
|
||||
}
|
||||
|
||||
func NewSplunkmetricSerializer(splunkmetric_hec_routing bool) (Serializer, error) {
|
||||
return splunkmetric.NewSerializer(splunkmetric_hec_routing)
|
||||
}
|
||||
|
||||
func NewInfluxSerializerConfig(config *Config) (Serializer, error) {
|
||||
var sort influx.FieldSortOrder
|
||||
if config.InfluxSortFields {
|
||||
|
||||
Reference in New Issue
Block a user