[Tracer] add support for trace-level tags (vertical propagation)#2432
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
499a5a7 to
db91b0c
Compare
This comment has been minimized.
This comment has been minimized.
db91b0c to
332149e
Compare
This comment has been minimized.
This comment has been minimized.
zacharycmontoya
left a comment
There was a problem hiding this comment.
LGTM with some minor comments
pierotibou
left a comment
There was a problem hiding this comment.
Nice work. I have a few questions but LGTM.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Good idea. I removed the |
tonyredondo
left a comment
There was a problem hiding this comment.
I already can feel the pain resolving conflicts in my agentless PR with the TagsList file modification 🥲
This comment has been minimized.
This comment has been minimized.
Code Coverage Report 📊✔️ Merging #2432 into master will not change line coverage
View the full report for further details: Datadog.Trace Breakdown ✔️
The following classes have significant coverage changes.
The following classes were added in #2432:
View the full reports for further details: |
Benchmarks Report 🐌Benchmarks for #2432 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️Raw results
|
| return _tags.GetEnumerator(); | ||
| } | ||
|
|
||
| /// <summary> |
There was a problem hiding this comment.
nit - if this is for testing only we could imagine having an extension in the test assembly rather than in the production code.
Continuation of #2178.
Add support for trace-level tags that are propagated via
x-datadog-tagsheader. Trace-level tags are now sent to the Agent by adding them to root spans during serialization. (aka vertical propagation)TraceTagNamesfor well-known trace-level tags (leavingTagsfor span-level tags)_dd.propagation_errorto denote propagation errors (e.g. header too long)TraceTagsCollectionwith support for parsing from and serializing to thex-datadog-tagspropagation headerstring TraceContext.DatadogTagswithTraceTagsCollection TraceContext.Tagsx-datadog-tagsheader to populateTraceContext.Tagsx-datadog-tagsheader with values fromTraceContext.TagsTraceContext.TagsFuture work:
_dd.p.upstream_servicestrace-level tag_sampling_priority_v1,_dd.origin,_dd.tracer_kr, and many more...)