From 44f2780cc6c319f053cfcd55ab4373e02ac116c9 Mon Sep 17 00:00:00 2001 From: Sven Rebhan Date: Thu, 19 Oct 2023 21:00:48 +0200 Subject: [PATCH] fix(serializers.json): Append newline for batch-serialization --- 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 8a90e560520a4..3923aec96ef31 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 3c78949038dca..34ea8dea6561a 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) {