Repository navigation
chore(traces): Add RFC for typed internal trace data model - #25329
Conversation
8490c1e to
492e304
Compare
There was a problem hiding this comment.
check-spelling found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cdae2cc44a
ℹ️ 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".
492e304 to
22953b6
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 22953b6585
ℹ️ 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".
aaffd17 to
1a2edc5
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a2edc5d4f
ℹ️ 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".
1a2edc5 to
154f9c1
Compare
950d6c7 to
fe697cc
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fe697cc61b
ℹ️ 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".
fe697cc to
08848d0
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08848d06b0
ℹ️ 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".
08848d0 to
c6d5ea1
Compare
The reserved-key section specified a best-effort cross-format path that the parent RFC explicitly excludes from the round-trip guarantee, enumerating key names, per-member AnyValue types, presence rules, and conflict resolution. Keep the contract -- the reserved prefix, typed state as the sole egress source of truth, malformed-key disposition, no authority for ordinary _dd.* keys, and the best-effort caveat -- plus the one non-derivable consequence for datadog.chunk.priority. The key set and its mechanics are implementation.
The SpanKind2Type cases were enumerated despite the preceding paragraph declaring that these derivations track upstream without a specification amendment; drop the enumeration and keep the deferral. Restate dd_value_to_string by the properties callers depend on -- total, deterministic, and independent of JSON library non-finite handling -- rather than by the per-variant rendering.
Replace mechanism with the property callers depend on in four places: mixed array encoding (order and finalizer equivalence, not the maximal-run split site), the TraceEventCompat bullets (one-to-many conversion and its metadata contract, not the method inventory), AttrValue and agent-envelope NaN handling (a preservation requirement for an unmodified write-back, not the resolved-path mechanism), and duration writes (representability, not the rounding mode).
A rule stated generally and then applied to named fields implies its enumeration is complete, so each omission reads as a specification gap and is answered with another paragraph. Remove the instantiations and keep only the cases that do not follow from the general rule: the Datadog signed timing fields, whose ingress dispositions disagree with each other; OTLP's length-delimited ID requirement; the combined-ID evaluation for Datadog's split trace ID; and an all-spans-rejected event, which has no dropped count of its own. Which paths fall into each del() category now follows from the type definitions rather than a hand-maintained list.
Reporting dropped data is an external observability constraint, not something these documents grant, so state it once and cite the source: the instrumentation specification's MUST-level ComponentError and ComponentEventsDropped requirements. Note reporting thereafter only where the disposition is not the default one -- an in-band dropped count that also changes, an unusual drop granularity, or a normalization that looks lossless -- and say explicitly that silence is not an exemption. Both sub-RFCs point at the rule from their Context so the removals do not read as weakening it.
Three related sources of length that constrain nothing. Cross-document restatement: both sub-RFCs re-derived the parent's effective-equivalence definition and closed Drawbacks with a bullet saying the parent's drawbacks also apply, and the parent's Prior Art duplicated links the sub-RFCs own. Repeated examples: the Datadog document demonstrated the same two attribute paths three times, so keep the User Experience block. Considered-and-declined prose: the OTLP absent-versus-default section quoted proto comments to reach a conclusion the model already implements structurally, the span-event ordering rationale concluded that no change was warranted, and the Zipkin/Jaeger/OpenTracing glossary entry described itself as not a constraint on the design.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 82c363269c
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b460748b41
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7845d8075e
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e52d6cb78
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e54747060b
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c510d5bb8e
ℹ️ 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".
Summary
Sets up a comprehensive RFC documenting a proposed strongly-typed trace data model for Vector, including semantically-lossless conversions to and from OLTP and Datadog APM formats.
This is a different path than #20170 which explicitly takes into account the Datadog-Vector-Datadog path rather than just adopting one format or another.
Rendered:
Vector configuration
N/A
How did you test this PR?
N/A
Change Type
Is this a breaking change?
Does this PR include user facing changes?
no-changeloglabel to this PR.References
opentelemetrysource and sink #1444datadog_agentincorrectly castsu64values from the Agent asi64in order to fit into theValueenum. #14687Notes
@vectordotdev/vectorto reach out to us regarding this PR.pre-pushhook, please see this template.make fmtmake check-clippy(if there are failures it's possible some of them can be fixed withmake clippy-fix)make testgit merge origin masterandgit push.Cargo.lock), pleaserun
make build-licensesto regenerate the license inventory and commit the changes (if any). More details on the dd-rust-license-tool.