feat(data-pipeline)!: CSS Trace Filters#1985
feat(data-pipeline)!: CSS Trace Filters#1985gh-worker-dd-mergequeue-cf854d[bot] merged 54 commits into
Conversation
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1985 +/- ##
==========================================
+ Coverage 73.44% 73.71% +0.26%
==========================================
Files 465 476 +11
Lines 77949 79647 +1698
==========================================
+ Hits 57248 58709 +1461
- Misses 20701 20938 +237
🚀 New features to boost your workflow:
|
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: cc7156b | Docs | Datadog PR Page | Give us feedback! |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
test: sort stats by resource for deterministic snapshot
…s-trace-filtering
…s-trace-filtering
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4e0ff40bf4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // 3. Require filtering: If filter_tags.require or filter_tags_regex.require contain any | ||
| // filters, all of them must match tags on the root span. If any required filter doesn't | ||
| // match, reject the trace. | ||
| fn should_drop<'a>(&self, root_span: &'a impl Span<'a>) -> bool { |
There was a problem hiding this comment.
Can you please make this pub? I need this, not filter_traces (having individual root spans I want to filter).
There was a problem hiding this comment.
filter_traces makes sense when you have an already serialized batch of data where the root span is just one span of many. But not when they're still linked lists or some native data structure given by the tracers.
There was a problem hiding this comment.
Maybe the logic to get root span and drop the trace can be handled by each caller and the TraceFilter only returns the decision for a given root span. This allow the Span trait to stay minimal.
There was a problem hiding this comment.
This makes more sense I agree. I fixed it by making filter_traces(traces) only work for traces with v04 span. 👍🏽
…s-trace-filtering
This reverts commit 6e5f6bf.
… add missing license header The dedup() call added to send_trace_chunks_inner was reversing VecMap key order unconditionally, changing the attribute ordering in V1 msgpack output and causing snapshot mismatch. The V1 encoder already calls defensive_dedup() internally; the extra dedup is unnecessary. Also adds missing Apache 2.0 license header to test_trace_filters.rs.
New test agent no longer propagates _dd.p.tid and _dd.p.dm from chunk level to child spans.
# Release proposal for libdd-remote-config and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-common **Next version:** `5.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v5.0.0` ### Commits - chore(profiling): Use SECURITY_ANONYMOUS when connecting to named pipe server (#2134) - fix: Fix http PathAndQuery Uri Parsing (#2122) - chore(common)!: replace native-certs with platform-verifier (#2078) - feat(data-pipeline)!: CSS Trace Filters (#1985) - fix(libdd-common): Add fallback logic for resolving Azure Functions instance name [SVLS-8931] (#2077) - test: fix timeouts on heavily contended scenarios (#2093) ## libdd-remote-config **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-remote-config-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: iunanua <18325288+iunanua@users.noreply.github.com>
What does this PR do?
Implements the CSS trace-level filtering mechanism, that is applied before stats computation.
Motivation
It's un unmet requirement from the spec.
Additional Notes
Please Ctrl+FFIXMEwhen reviewing, I let some questions in the code that I'd like answers for before mergingTODO:
Wont do
advanced resource normalization (sql, redis etc...).No other implementation does that100% normalization edge cases (empty service field + non-normalized name + filter depending on that)Too specific edge case. Ignoring it for nowcheck on meta_struct tooNot in the specAPMSP-2763