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"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/plugins/serializers"
|
||||
)
|
||||
|
||||
type serializer struct {
|
||||
TimestampUnits time.Duration
|
||||
}
|
||||
type Serializer struct{}
|
||||
|
||||
/*
|
||||
Example for the JSON generated and pushed to the MID
|
||||
|
|
@ -38,12 +37,7 @@ type OIMetric struct {
|
|||
|
||||
type OIMetrics []OIMetric
|
||||
|
||||
func NewSerializer() (*serializer, error) {
|
||||
s := &serializer{}
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func (s *serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
||||
func (s *Serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
||||
serialized, err := s.createObject(metric)
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
|
|
@ -51,7 +45,7 @@ func (s *serializer) Serialize(metric telegraf.Metric) (out []byte, err error) {
|
|||
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)
|
||||
for _, metric := range metrics {
|
||||
m, err := s.createObject(metric)
|
||||
|
|
@ -65,7 +59,7 @@ func (s *serializer) SerializeBatch(metrics []telegraf.Metric) (out []byte, err
|
|||
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.
|
||||
** Following elements accepted in the request body:
|
||||
** metric_type: The name of the metric
|
||||
|
|
@ -132,3 +126,16 @@ func verifyValue(v interface{}) bool {
|
|||
_, ok := v.(string)
|
||||
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)
|
||||
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
var buf []byte
|
||||
buf, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -72,7 +72,7 @@ func TestSerialize_TimestampUnits(t *testing.T) {
|
|||
},
|
||||
time.Unix(1525478795, 123456789),
|
||||
)
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
actual, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tt.expected, string(actual))
|
||||
|
|
@ -90,7 +90,7 @@ func TestSerializeMetricInt(t *testing.T) {
|
|||
}
|
||||
m := metric.New("cpu", tags, fields, now)
|
||||
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
var buf []byte
|
||||
buf, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -114,7 +114,7 @@ func TestSerializeMetricString(t *testing.T) {
|
|||
}
|
||||
m := metric.New("cpu", tags, fields, now)
|
||||
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
var buf []byte
|
||||
buf, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -138,7 +138,7 @@ func TestSerializeMultiFields(t *testing.T) {
|
|||
return m.FieldList()[i].Key < m.FieldList()[j].Key
|
||||
})
|
||||
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
var buf []byte
|
||||
buf, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -164,7 +164,7 @@ func TestSerializeMetricWithEscapes(t *testing.T) {
|
|||
}
|
||||
m := metric.New("My CPU", tags, fields, now)
|
||||
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
buf, err := s.Serialize(m)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ func TestSerializeBatch(t *testing.T) {
|
|||
time.Unix(0, 0),
|
||||
)
|
||||
metrics := []telegraf.Metric{m, m}
|
||||
s, _ := NewSerializer()
|
||||
s := &Serializer{}
|
||||
buf, err := s.SerializeBatch(metrics)
|
||||
require.NoError(t, err)
|
||||
require.Equal(
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/nowmetric"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/prometheus"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/prometheusremotewrite"
|
||||
"github.com/influxdata/telegraf/plugins/serializers/splunkmetric"
|
||||
|
|
@ -163,8 +162,6 @@ func NewSerializer(config *Config) (Serializer, error) {
|
|||
switch config.DataFormat {
|
||||
case "splunkmetric":
|
||||
serializer, err = NewSplunkmetricSerializer(config.HecRouting, config.SplunkmetricMultiMetric, config.SplunkmetricOmitEventTag), nil
|
||||
case "nowmetric":
|
||||
serializer, err = NewNowSerializer()
|
||||
case "wavefront":
|
||||
serializer, err = NewWavefrontSerializer(
|
||||
config.Prefix,
|
||||
|
|
@ -243,7 +240,3 @@ func NewWavefrontSerializer(prefix string, useStrict bool, sourceOverride []stri
|
|||
func NewSplunkmetricSerializer(splunkmetricHecRouting bool, splunkmetricMultimetric bool, splunkmetricOmitEventTag bool) Serializer {
|
||||
return splunkmetric.NewSerializer(splunkmetricHecRouting, splunkmetricMultimetric, splunkmetricOmitEventTag)
|
||||
}
|
||||
|
||||
func NewNowSerializer() (Serializer, error) {
|
||||
return nowmetric.NewSerializer()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue