From 2f3638c01b172f24462f22836b3c09efd82920cf Mon Sep 17 00:00:00 2001 From: kruskal <99559985+kruskall@users.noreply.github.com> Date: Fri, 3 May 2024 17:22:00 +0200 Subject: [PATCH] feat: add error.id to jaeger errors --- .../span_jaeger_data_stream_with_error.approved.json | 3 ++- input/otlp/test_approved/span_jaeger_http.approved.json | 4 ++++ .../transaction_jaeger_data_stream_with_error.approved.json | 3 ++- .../test_approved/transaction_jaeger_full.approved.json | 4 ++++ input/otlp/traces.go | 3 +++ input/otlp/traces_test.go | 6 ++++++ 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/input/otlp/test_approved/span_jaeger_data_stream_with_error.approved.json b/input/otlp/test_approved/span_jaeger_data_stream_with_error.approved.json index d34010ba..7aecf942 100644 --- a/input/otlp/test_approved/span_jaeger_data_stream_with_error.approved.json +++ b/input/otlp/test_approved/span_jaeger_data_stream_with_error.approved.json @@ -49,6 +49,7 @@ "namespace": "4" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -78,4 +79,4 @@ } } ] -} \ No newline at end of file +} diff --git a/input/otlp/test_approved/span_jaeger_http.approved.json b/input/otlp/test_approved/span_jaeger_http.approved.json index 6b2823ed..05cb215f 100644 --- a/input/otlp/test_approved/span_jaeger_http.approved.json +++ b/input/otlp/test_approved/span_jaeger_http.approved.json @@ -78,6 +78,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -173,6 +174,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -220,6 +222,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -267,6 +270,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "type": "DBClosedException" diff --git a/input/otlp/test_approved/transaction_jaeger_data_stream_with_error.approved.json b/input/otlp/test_approved/transaction_jaeger_data_stream_with_error.approved.json index 29c6df9a..ab11886a 100644 --- a/input/otlp/test_approved/transaction_jaeger_data_stream_with_error.approved.json +++ b/input/otlp/test_approved/transaction_jaeger_data_stream_with_error.approved.json @@ -46,6 +46,7 @@ "namespace": "4" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -77,4 +78,4 @@ } } ] -} \ No newline at end of file +} diff --git a/input/otlp/test_approved/transaction_jaeger_full.approved.json b/input/otlp/test_approved/transaction_jaeger_full.approved.json index c0fd6f45..1ae8d09b 100644 --- a/input/otlp/test_approved/transaction_jaeger_full.approved.json +++ b/input/otlp/test_approved/transaction_jaeger_full.approved.json @@ -70,6 +70,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -185,6 +186,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -242,6 +244,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "message": "no connection established" @@ -299,6 +302,7 @@ "version": "unknown" }, "error": { + "id": "dynamic", "exception": [ { "type": "DBClosedException" diff --git a/input/otlp/traces.go b/input/otlp/traces.go index 29dd1145..6a682c84 100644 --- a/input/otlp/traces.go +++ b/input/otlp/traces.go @@ -1221,6 +1221,9 @@ func (c *Consumer) convertJaegerErrorSpanEvent(event ptrace.SpanEvent, apmEvent e.Exception = modelpb.ExceptionFromVTPool() e.Exception.Message = exMessage e.Exception.Type = exType + if id, err := newUniqueID(); err == nil { + e.Id = id + } } return e } diff --git a/input/otlp/traces_test.go b/input/otlp/traces_test.go index 42eca9cf..a92377b1 100644 --- a/input/otlp/traces_test.go +++ b/input/otlp/traces_test.go @@ -1960,6 +1960,12 @@ func approveEventDocs(t testing.TB, name string, docs [][]byte) { delete(m, "event") } + if e, ok := m["error"].(map[string]any); ok { + if _, ok := e["id"]; ok { + e["id"] = "dynamic" + } + } + events[i] = m } received := map[string]any{"events": events}