Skip to content

Commit

Permalink
Setting SpanLink as a tag as opposed to using JsonSerializer
Browse files Browse the repository at this point in the history
  • Loading branch information
link04 committed May 31, 2024
1 parent ac8ab3e commit fb99361
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions tracer/src/Datadog.Trace/Activity/OtlpHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using Datadog.Trace.Activity.DuckTypes;
using Datadog.Trace.DuckTyping;
using Datadog.Trace.Logging;
using Datadog.Trace.Tagging;
using Datadog.Trace.Util;
using Datadog.Trace.Vendors.Newtonsoft.Json;

Expand Down Expand Up @@ -216,21 +217,23 @@ private static void ExtractActivityLinks<TInner>(Span span, IActivity5? activity
return;
}

var links = new List<IActivityLink>();
foreach (var link in (activity5.Links))
{
var duckLink = link.DuckCast<IActivityLink>();
links.Add(duckLink!);
}

if (links.Count <= 0)
{
return;
}
_ = HexString.TryParseTraceId(duckLink!.Context.TraceId.TraceId!, out var newActivityTraceId);
_ = HexString.TryParseUInt64(duckLink.Context.SpanId.SpanId!, out var newActivitySpanId);

var spanContext = new SpanContext(
newActivityTraceId,
newActivitySpanId,
samplingPriority: (int?)duckLink!.Context.TraceFlags == (int?)ActivityTraceFlags.None ? 0 : 1,
serviceName: null,
origin: null);

var settings = new JsonSerializerSettings { Converters = new List<JsonConverter> { new ActivityLinkConverter() }, Formatting = Formatting.None };
var jsonArray = JsonConvert.SerializeObject(links, settings);
span.SetTag("_dd.span_links", jsonArray);
var duckLinkSpan = new Span(spanContext, DateTimeOffset.Now, new CommonTags());
span.AddSpanLink(duckLinkSpan);
}
}

internal static string GetSpanKind(ActivityKind activityKind) =>
Expand Down

0 comments on commit fb99361

Please sign in to comment.