There are a handful of deprecated attributes defined in sentry-conventions where the replacement has a different type. As of getsentry/sentry-conventions@c116335:
deviceMemory: string -> device.memory.estimated_capacity: integer (backfill)
hardwareConcurrency: string -> device.processor_count: integer (backfill)
ai.tools: string[] -> gen_ai.request.available_tools: string (backfill)
ai.responses: string[] -> gen_ai.response.text: string (backfill)
ai.texts: string[] -> gen_ai.input.messages: string (backfill)
ai.tool_calls: string[] -> gen_ai.response.tool_calls: string (backfill)
db.sql.bindings: string[] -> db.query.parameter.<key>: string (None)
In two of them we go from a string to an integer, in the others from a list of strings to a single string. Both of these cases are easy enough to handle during normalization:
string -> integer: Parse the number
string[] -> string: Concatenate the strings with ", "
However, this still raises the question of how we should handle this in the future: what if a type change is added for which it's not as obvious what we should do? Should we lint for this relay-conventions?
There is the further problem that in db.sql.bindings -> db.query.parameter.<key> we go from a single attribute to multiple attributes. This is academic at the moment because the attribute has no normalization defined right now (and possibly never will), but it's something to keep in mind.
There are a handful of deprecated attributes defined in
sentry-conventionswhere the replacement has a different type. As of getsentry/sentry-conventions@c116335:In two of them we go from a string to an integer, in the others from a list of strings to a single string. Both of these cases are easy enough to handle during normalization:
string -> integer: Parse the numberstring[] -> string: Concatenate the strings with", "However, this still raises the question of how we should handle this in the future: what if a type change is added for which it's not as obvious what we should do? Should we lint for this
relay-conventions?There is the further problem that in
db.sql.bindings -> db.query.parameter.<key>we go from a single attribute to multiple attributes. This is academic at the moment because the attribute has no normalization defined right now (and possibly never will), but it's something to keep in mind.