data: no format atm, but UI and replay product relies on certain format/values in breadcrumbs
For crons we have nothing atm.
For metrics (DDM) we have:
tags
Let's write an RFC that accomplishes the following:
Establishes attributes field for spans/breadcrumbs/crons/metrics that is the top level key value store for arbitrary data about a sentry signal (we can alias to data for backwards compat). Attributes will be flattened and rely on keys for separation (http.X vs. db.Y).
Defines attributes to follow conventions that are superset of OTEL's semantic conventions
Formalizes attribute conventions via some format that will be consumed by Relay/Kafka/Backend/Frontend (we can make this rust/python/js library that we publish, or just a plain json schema)
Goals:
There is a clear mapping between what exists today vs. attributes we want for our spans/metrics/breadcrumbs in the future
Everything is backwards compatible - an old SDK sending data should still keep working with modern Sentry (exceptions can apply)
We've been relying on a variety of sources of truth for conventions on data attached to Sentry events.
For errors/transactions we have:
For spans we have:
For breadcrumbs we have:
For crons we have nothing atm.
For metrics (DDM) we have:
Let's write an RFC that accomplishes the following:
http.X
vs.db.Y
).Goals: