From 8d1bf60bce18acecf64d2f29bd5ace9239f94c7e Mon Sep 17 00:00:00 2001 From: Sven Rebhan <36194019+srebhan@users.noreply.github.com> Date: Mon, 23 Oct 2023 15:47:55 +0200 Subject: [PATCH] fix(serializers.json): Append newline for batch-serialization (#14150) --- plugins/serializers/json/json.go | 2 ++ plugins/serializers/json/json_test.go | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/serializers/json/json.go b/plugins/serializers/json/json.go index 8a90e5605..3923aec96 100644 --- a/plugins/serializers/json/json.go +++ b/plugins/serializers/json/json.go @@ -103,6 +103,8 @@ func (s *Serializer) SerializeBatch(metrics []telegraf.Metric) ([]byte, error) { if err != nil { return []byte{}, err } + serialized = append(serialized, '\n') + return serialized, nil } diff --git a/plugins/serializers/json/json_test.go b/plugins/serializers/json/json_test.go index 3c7894903..34ea8dea6 100644 --- a/plugins/serializers/json/json_test.go +++ b/plugins/serializers/json/json_test.go @@ -197,7 +197,7 @@ func TestSerializeBatch(t *testing.T) { require.NoError(t, err) require.Equal( t, - []byte(`{"metrics":[{"fields":{"value":42},"name":"cpu","tags":{},"timestamp":0},{"fields":{"value":42},"name":"cpu","tags":{},"timestamp":0}]}`), + []byte(`{"metrics":[{"fields":{"value":42},"name":"cpu","tags":{},"timestamp":0},{"fields":{"value":42},"name":"cpu","tags":{},"timestamp":0}]}`+"\n"), buf, ) } @@ -219,7 +219,7 @@ func TestSerializeBatchSkipInf(t *testing.T) { require.NoError(t, s.Init()) buf, err := s.SerializeBatch(metrics) require.NoError(t, err) - require.Equal(t, []byte(`{"metrics":[{"fields":{"time_idle":42},"name":"cpu","tags":{},"timestamp":0}]}`), buf) + require.Equal(t, []byte(`{"metrics":[{"fields":{"time_idle":42},"name":"cpu","tags":{},"timestamp":0}]}`+"\n"), buf) } func TestSerializeBatchSkipInfAllFields(t *testing.T) { @@ -238,7 +238,7 @@ func TestSerializeBatchSkipInfAllFields(t *testing.T) { require.NoError(t, s.Init()) buf, err := s.SerializeBatch(metrics) require.NoError(t, err) - require.Equal(t, []byte(`{"metrics":[{"fields":{},"name":"cpu","tags":{},"timestamp":0}]}`), buf) + require.Equal(t, []byte(`{"metrics":[{"fields":{},"name":"cpu","tags":{},"timestamp":0}]}`+"\n"), buf) } func TestSerializeTransformationNonBatch(t *testing.T) {