chore(serializers.nowmetric): Migrate to new-style framework (#13340)
This commit is contained in:
parent
2a33f496c4
commit
d769495276
|
|
@ -0,0 +1,7 @@
|
||||||
|
//go:build !custom || serializers || serializers.nowmetric
|
||||||
|
|
||||||
|
package all
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/influxdata/telegraf/plugins/serializers/nowmetric" // register plugin
|
||||||
|
)
|
||||||
|
|
@ -7,11 +7,10 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
|
"github.com/influxdata/telegraf/plugins/serializers"
|
||||||
)
|
)
|
||||||
|
|
||||||
type serializer struct {
|
type Serializer struct{}
|
||||||
TimestampUnits time.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Example for the JSON generated and pushed to the MID
|
Example for the JSON generated and pushed to the MID
|
||||||
|
|
@ -38,12 +37,7 @@ type OIMetric struct {
|
||||||
|
|
||||||
type OIMetrics []OIMetric
|
type OIMetrics []OIMetric
|
||||||
|
|
||||||
func NewSerializer() (*serializer, error) {
|
func (s *Serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
||||||
s := &serializer{}
|
|
||||||
return s, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
|
||||||
serialized, err := s.createObject(metric)
|
serialized, err := s.createObject(metric)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []byte{}, err
|
return []byte{}, err
|
||||||
|
|
@ -51,7 +45,7 @@ func (s *serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
||||||
return serialized, nil
|
return serialized, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *serializer) SerializeBatch(metrics []telegraf.Metric) (out []byte, err error) {
|
func (s *Serializer) SerializeBatch(metrics []telegraf.Metric) (out []byte, err error) {
|
||||||
objects := make([]byte, 0)
|
objects := make([]byte, 0)
|
||||||
for _, metric := range metrics {
|
for _, metric := range metrics {
|
||||||
m, err := s.createObject(metric)
|
m, err := s.createObject(metric)
|
||||||
|
|
@ -65,7 +59,7 @@ func (s *serializer) SerializeBatch(metrics []telegraf.Metric) (out []byte, err
|
||||||
return replaced, nil
|
return replaced, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *serializer) createObject(metric telegraf.Metric) ([]byte, error) {
|
func (s *Serializer) createObject(metric telegraf.Metric) ([]byte, error) {
|
||||||
/* ServiceNow Operational Intelligence supports an array of JSON objects.
|
/* ServiceNow Operational Intelligence supports an array of JSON objects.
|
||||||
** Following elements accepted in the request body:
|
** Following elements accepted in the request body:
|
||||||
** metric_type: The name of the metric
|
** metric_type: The name of the metric
|
||||||
|
|
@ -132,3 +126,16 @@ func verifyValue(v interface{}) bool {
|
||||||
_, ok := v.(string)
|
_, ok := v.(string)
|
||||||
return !ok
|
return !ok
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
serializers.Add("nowmetric",
|
||||||
|
func() serializers.Serializer {
|
||||||
|
return &Serializer{}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// InitFromConfig is a compatibility function to construct the parser the old way
|
||||||
|
func (s *Serializer) InitFromConfig(_ *serializers.Config) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ func TestSerializeMetricFloat(t *testing.T) {
|
||||||
}
|
}
|
||||||
m := metric.New("cpu", tags, fields, now)
|
m := metric.New("cpu", tags, fields, now)
|
||||||
|
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
var buf []byte
|
var buf []byte
|
||||||
buf, err := s.Serialize(m)
|
buf, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -72,7 +72,7 @@ func TestSerialize_TimestampUnits(t *testing.T) {
|
||||||
},
|
},
|
||||||
time.Unix(1525478795, 123456789),
|
time.Unix(1525478795, 123456789),
|
||||||
)
|
)
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
actual, err := s.Serialize(m)
|
actual, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, tt.expected, string(actual))
|
require.Equal(t, tt.expected, string(actual))
|
||||||
|
|
@ -90,7 +90,7 @@ func TestSerializeMetricInt(t *testing.T) {
|
||||||
}
|
}
|
||||||
m := metric.New("cpu", tags, fields, now)
|
m := metric.New("cpu", tags, fields, now)
|
||||||
|
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
var buf []byte
|
var buf []byte
|
||||||
buf, err := s.Serialize(m)
|
buf, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -114,7 +114,7 @@ func TestSerializeMetricString(t *testing.T) {
|
||||||
}
|
}
|
||||||
m := metric.New("cpu", tags, fields, now)
|
m := metric.New("cpu", tags, fields, now)
|
||||||
|
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
var buf []byte
|
var buf []byte
|
||||||
buf, err := s.Serialize(m)
|
buf, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -138,7 +138,7 @@ func TestSerializeMultiFields(t *testing.T) {
|
||||||
return m.FieldList()[i].Key < m.FieldList()[j].Key
|
return m.FieldList()[i].Key < m.FieldList()[j].Key
|
||||||
})
|
})
|
||||||
|
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
var buf []byte
|
var buf []byte
|
||||||
buf, err := s.Serialize(m)
|
buf, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -164,7 +164,7 @@ func TestSerializeMetricWithEscapes(t *testing.T) {
|
||||||
}
|
}
|
||||||
m := metric.New("My CPU", tags, fields, now)
|
m := metric.New("My CPU", tags, fields, now)
|
||||||
|
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
buf, err := s.Serialize(m)
|
buf, err := s.Serialize(m)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -187,7 +187,7 @@ func TestSerializeBatch(t *testing.T) {
|
||||||
time.Unix(0, 0),
|
time.Unix(0, 0),
|
||||||
)
|
)
|
||||||
metrics := []telegraf.Metric{m, m}
|
metrics := []telegraf.Metric{m, m}
|
||||||
s, _ := NewSerializer()
|
s := &Serializer{}
|
||||||
buf, err := s.SerializeBatch(metrics)
|
buf, err := s.SerializeBatch(metrics)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(
|
require.Equal(
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
"github.com/influxdata/telegraf/plugins/serializers/nowmetric"
|
|
||||||
"github.com/influxdata/telegraf/plugins/serializers/prometheus"
|
"github.com/influxdata/telegraf/plugins/serializers/prometheus"
|
||||||
"github.com/influxdata/telegraf/plugins/serializers/prometheusremotewrite"
|
"github.com/influxdata/telegraf/plugins/serializers/prometheusremotewrite"
|
||||||
"github.com/influxdata/telegraf/plugins/serializers/splunkmetric"
|
"github.com/influxdata/telegraf/plugins/serializers/splunkmetric"
|
||||||
|
|
@ -163,8 +162,6 @@ func NewSerializer(config *Config) (Serializer, error) {
|
||||||
switch config.DataFormat {
|
switch config.DataFormat {
|
||||||
case "splunkmetric":
|
case "splunkmetric":
|
||||||
serializer, err = NewSplunkmetricSerializer(config.HecRouting, config.SplunkmetricMultiMetric, config.SplunkmetricOmitEventTag), nil
|
serializer, err = NewSplunkmetricSerializer(config.HecRouting, config.SplunkmetricMultiMetric, config.SplunkmetricOmitEventTag), nil
|
||||||
case "nowmetric":
|
|
||||||
serializer, err = NewNowSerializer()
|
|
||||||
case "wavefront":
|
case "wavefront":
|
||||||
serializer, err = NewWavefrontSerializer(
|
serializer, err = NewWavefrontSerializer(
|
||||||
config.Prefix,
|
config.Prefix,
|
||||||
|
|
@ -243,7 +240,3 @@ func NewWavefrontSerializer(prefix string, useStrict bool, sourceOverride []stri
|
||||||
func NewSplunkmetricSerializer(splunkmetricHecRouting bool, splunkmetricMultimetric bool, splunkmetricOmitEventTag bool) Serializer {
|
func NewSplunkmetricSerializer(splunkmetricHecRouting bool, splunkmetricMultimetric bool, splunkmetricOmitEventTag bool) Serializer {
|
||||||
return splunkmetric.NewSerializer(splunkmetricHecRouting, splunkmetricMultimetric, splunkmetricOmitEventTag)
|
return splunkmetric.NewSerializer(splunkmetricHecRouting, splunkmetricMultimetric, splunkmetricOmitEventTag)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewNowSerializer() (Serializer, error) {
|
|
||||||
return nowmetric.NewSerializer()
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue