From 97521a95124be7f36e9383183e9bf8dc680bca54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=83=E4=B9=98?= Date: Mon, 22 Jan 2024 10:25:04 +0800 Subject: [PATCH 1/2] [Fixed] Fix missing Connection_string tag in database Span --- plugins/input/skywalkingv2/trace_segment_handle.go | 12 +++++++++++- plugins/input/skywalkingv3/segment_analyze.go | 13 +++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/plugins/input/skywalkingv2/trace_segment_handle.go b/plugins/input/skywalkingv2/trace_segment_handle.go index 6945659b5d..4ba91e5bcb 100644 --- a/plugins/input/skywalkingv2/trace_segment_handle.go +++ b/plugins/input/skywalkingv2/trace_segment_handle.go @@ -193,6 +193,16 @@ func (t *TraceSegmentHandle) parseSpan(span *agent.SpanObject, applicationInstan } else { otSpan.StatusCode = skywalkingv3.StatusCodeOk } + + switch { + case span.SpanLayer == agent.SpanLayer_MQ: + t.mappingMessageSystemTag(span, otSpan) + break + case span.SpanType == agent.SpanType_Exit: + mappingDatabaseTag(span, otSpan) + break + } + return otSpan } @@ -217,7 +227,7 @@ func mappingDatabaseTag(span *agent.SpanObject, otSpan *skywalkingv3.OtSpan) { return } - otSpan.Attribute[skywalkingv3.AttributeDBConnectionString] = dbType + "://" + span.GetPeer() + otSpan.Attribute[skywalkingv3.AttributeDBConnectionString] = strings.ToLower(dbType) + "://" + span.GetPeer() } func convertUniIDToString(u *agent.UniqueId) string { diff --git a/plugins/input/skywalkingv3/segment_analyze.go b/plugins/input/skywalkingv3/segment_analyze.go index 738eb1ef6b..733f6283e1 100644 --- a/plugins/input/skywalkingv3/segment_analyze.go +++ b/plugins/input/skywalkingv3/segment_analyze.go @@ -82,7 +82,6 @@ func ParseSegment(span *v3.SpanObject, segment *v3.SegmentObject, cache *Resourc otSpan.Kind = OpenTracingSpanKindServer case span.SpanType == v3.SpanType_Exit: otSpan.Kind = OpenTracingSpanKindClient - mappingDatabaseTag(span, otSpan) case span.SpanType == v3.SpanType_Local: otSpan.Kind = OpenTracingSpanKindInternal default: @@ -155,6 +154,16 @@ func ParseSegment(span *v3.SpanObject, segment *v3.SegmentObject, cache *Resourc } else { otSpan.StatusCode = StatusCodeOk } + + switch { + case span.SpanLayer == v3.SpanLayer_MQ: + mappingMessageSystemTag(span, otSpan, mapping) + break + case span.SpanType == v3.SpanType_Exit: + mappingDatabaseTag(span, otSpan) + break + } + return otSpan } @@ -179,7 +188,7 @@ func mappingDatabaseTag(span *v3.SpanObject, otSpan *OtSpan) { return } - otSpan.Attribute[AttributeDBConnectionString] = dbType + "://" + span.GetPeer() + otSpan.Attribute[AttributeDBConnectionString] = strings.ToLower(dbType) + "://" + span.GetPeer() } func mappingMessageSystemTag(span *v3.SpanObject, otSpan *OtSpan, mapping map[int32]string) { From d3e619df1781eb9c1d2979c1be515bedce5fc37b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=83=E4=B9=98?= Date: Mon, 22 Jan 2024 10:39:43 +0800 Subject: [PATCH 2/2] remove redundant break --- plugins/input/skywalkingv2/trace_segment_handle.go | 2 -- plugins/input/skywalkingv3/segment_analyze.go | 2 -- 2 files changed, 4 deletions(-) diff --git a/plugins/input/skywalkingv2/trace_segment_handle.go b/plugins/input/skywalkingv2/trace_segment_handle.go index 4ba91e5bcb..d11d1f8bf9 100644 --- a/plugins/input/skywalkingv2/trace_segment_handle.go +++ b/plugins/input/skywalkingv2/trace_segment_handle.go @@ -197,10 +197,8 @@ func (t *TraceSegmentHandle) parseSpan(span *agent.SpanObject, applicationInstan switch { case span.SpanLayer == agent.SpanLayer_MQ: t.mappingMessageSystemTag(span, otSpan) - break case span.SpanType == agent.SpanType_Exit: mappingDatabaseTag(span, otSpan) - break } return otSpan diff --git a/plugins/input/skywalkingv3/segment_analyze.go b/plugins/input/skywalkingv3/segment_analyze.go index 733f6283e1..820ce9eead 100644 --- a/plugins/input/skywalkingv3/segment_analyze.go +++ b/plugins/input/skywalkingv3/segment_analyze.go @@ -158,10 +158,8 @@ func ParseSegment(span *v3.SpanObject, segment *v3.SegmentObject, cache *Resourc switch { case span.SpanLayer == v3.SpanLayer_MQ: mappingMessageSystemTag(span, otSpan, mapping) - break case span.SpanType == v3.SpanType_Exit: mappingDatabaseTag(span, otSpan) - break } return otSpan