-
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(spans): Align the spans topics with reality #389
Conversation
versions in use: The following repositories use one of the schemas you are editing. It is recommended to roll out schema changes in small PRs, meaning that if those used versions lag behind the latest, it is probably best to update those services before rolling out your change. latest version: 1.1.1 benign changesschemas/buffered-segments.v1.schema.json
schemas/ingest-spans.v1.schema.json
schemas/snuba-spans.v1.schema.json
✅ This PR should be safe to roll out to consumers first. Make sure to bump
...then in the other repos:
Take a look at the README for how to release a new version of sentry-kafka-schemas. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- What are these files? Are these schema definitions for what data looks like on a kafka topic?
- What is the difference between the 3: buffered_segment, ingest-spans, and snuba-spans? The only topic I am familiar with is the snuba-spans topic that snuba consumes spans off of.
These files define minimum requirements for valid data on the topics required by the consuming side. The schema can be enforced in consumers. I'm not sure if Snuba uses them, at least Sentry does. @untitaker may have more information on that.
There are differences between these topics, as each of the pipeline steps adds more attributes to the spans. From Snuba's perspective nothing changes, as Snuba will still consume the same payloads from The reason for the change in this schema is that it was incorrect. Specifically, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change to snuba-spans to allow parent_span_id and segment_id to be null should be safe for snuba consumers because they already handle the null case for these fields. https://github.com/getsentry/snuba/blob/b6f874b16bc533ae233ebfac39110c3d473bc907/rust_snuba/src/processors/spans.rs#L39-L62
"type": "object", | ||
"additionalProperties": { | ||
"$ref": "#/definitions/MetricsSummary" | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is this removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the PR description - metrics summaries do not exist anymore and will not come back.
"type": "string" | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are these removed?
Various fixes to the
ingest-spans
,buffered-segments
, andsnuba-spans
schema definitions:
_metrics_summary
, as this is no longer produced and supportedparent_span_id
andsegment_id
optional everywhereexclusive_time_ms
fromingest-spans
andbuffered-segments
is_segment
andsegment_id
fromingest-spans
Also exposes
SegmentSpan
as named type frombuffered-segments
for the consumer