From b67b3157a8e97c369134a78b9832579ce5f54a64 Mon Sep 17 00:00:00 2001 From: Daniel Redondo Date: Wed, 26 Feb 2020 11:56:31 +0100 Subject: [PATCH 1/3] Send the metadata map only in the first payload of the recorder --- agent/recorder.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/agent/recorder.go b/agent/recorder.go index 25b3790b..fb622c6a 100644 --- a/agent/recorder.go +++ b/agent/recorder.go @@ -28,13 +28,14 @@ type ( sync.RWMutex t tomb.Tomb - agentId string - apiKey string - apiEndpoint string - version string - userAgent string - debugMode bool - metadata map[string]interface{} + agentId string + apiKey string + apiEndpoint string + version string + userAgent string + debugMode bool + metadata map[string]interface{} + metadataOnce sync.Once payloadSpans []PayloadSpan payloadEvents []PayloadEvent @@ -147,11 +148,16 @@ func (r *SpanRecorder) sendSpans() (error, bool) { events, evMore, evTotal := r.popPayloadEvents(batchSize) payload := map[string]interface{}{ - "metadata": r.metadata, "spans": spans, "events": events, tags.AgentID: r.agentId, } + + // We send the metadata only in the first payload + r.metadataOnce.Do(func() { + payload["metadata"] = r.metadata + }) + buf, err := msgPackEncodePayload(payload) if err != nil { atomic.AddInt64(&r.stats.sendSpansKo, 1) From 83c0d66cac64f8e5a24d34061847b8ba5cf6ed7b Mon Sep 17 00:00:00 2001 From: Daniel Redondo Date: Wed, 26 Feb 2020 12:13:22 +0100 Subject: [PATCH 2/3] Changes the condition from the first payload to until a successful payload has been delivered --- agent/recorder.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/agent/recorder.go b/agent/recorder.go index fb622c6a..552135ce 100644 --- a/agent/recorder.go +++ b/agent/recorder.go @@ -28,14 +28,13 @@ type ( sync.RWMutex t tomb.Tomb - agentId string - apiKey string - apiEndpoint string - version string - userAgent string - debugMode bool - metadata map[string]interface{} - metadataOnce sync.Once + agentId string + apiKey string + apiEndpoint string + version string + userAgent string + debugMode bool + metadata map[string]interface{} payloadSpans []PayloadSpan payloadEvents []PayloadEvent @@ -153,11 +152,10 @@ func (r *SpanRecorder) sendSpans() (error, bool) { tags.AgentID: r.agentId, } - // We send the metadata only in the first payload - r.metadataOnce.Do(func() { + if atomic.LoadInt64(&r.stats.sendSpansOk) == 0 { + r.logger.Println("adding payload metadata") payload["metadata"] = r.metadata - }) - + } buf, err := msgPackEncodePayload(payload) if err != nil { atomic.AddInt64(&r.stats.sendSpansKo, 1) From 3ed72612d3aba22a648a5e39691a287defa00ab7 Mon Sep 17 00:00:00 2001 From: Daniel Redondo Date: Tue, 5 May 2020 09:59:12 +0200 Subject: [PATCH 3/3] rebase changes --- agent/recorder.go | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/recorder.go b/agent/recorder.go index 552135ce..e430a9ba 100644 --- a/agent/recorder.go +++ b/agent/recorder.go @@ -156,6 +156,7 @@ func (r *SpanRecorder) sendSpans() (error, bool) { r.logger.Println("adding payload metadata") payload["metadata"] = r.metadata } + buf, err := msgPackEncodePayload(payload) if err != nil { atomic.AddInt64(&r.stats.sendSpansKo, 1)