feat(stats)!: send telemetry for cardinality limits#2159
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 883025f | Docs | Datadog PR Page | Give us feedback! |
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f971f0c30c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
98f8c1d to
fffe30d
Compare
2655975 to
bf5e284
Compare
fffe30d to
e5c0f96
Compare
bf5e284 to
ce821ea
Compare
e5c0f96 to
d97928e
Compare
ce821ea to
ebd7e4e
Compare
d97928e to
c84447e
Compare
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
|
5294954 to
b1f49f4
Compare
ebd7e4e to
b04c7f6
Compare
b1f49f4 to
88317cd
Compare
b04c7f6 to
8d22e4b
Compare
23624b6 to
a9738ee
Compare
# What does this PR do? Add whole-key cardinality limit to the SpanConcentrator. See [this RFC](https://datadoghq.atlassian.net/wiki/spaces/APM/pages/6821151019/PENDING+Cardinality+Limits) for details The telemetry metrics specified in the RFC are implemented in #2159 The per fields limit from the RFC is out of the scope of this PR ## Breaking change The cardinality limit is applied to **all** users of the SpanConcentrator however the limit can be configured manually. # Motivation Avoid unbounded bucket growth when dealing with high cardinality. # Additional Notes ## Limit default value The limit of 7000 entries has been chosen based on the following results **Single Bucket** | Component | Typical | Worst | | --- | --- | --- | | HashMap flat table | 3\.5 MB _(unchanged)_ | 3\.5 MB _(unchanged)_ | | String heap (7 001 × 76 / 122 B) | 0\.5 MB | 0\.9 MB | | DDSketch bins (7 001 × 1 600 / 32 768 B) | 11\.2 MB | 229\.3 MB | | **StatsBucket total** | **~15.2 MB** | **~233.7 MB** | **SpanConcentrator** | Limit | Typical (3 buckets) | Worst (3 buckets) | | --- | --- | --- | | **7 000** | **~45.6 MB** | **~701.2 MB** | ## Trilean change The overflow sentinel key requires us to use a trilean to represent the `is_trace_root` in the aggregation key. Co-authored-by: vianney.ruhlmann <vianney.ruhlmann@datadoghq.com>
|
View all feedbacks in Devflow UI.
This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
The expected merge time in
|
a9738ee to
883025f
Compare

What does this PR do?
Add telemetry for the collapsed stats group based on this RFC
Motivation
Follow-up of #2158
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.