Skip to content

eap: Handle type changes when normalizing attributes #5981

@loewenheim

Description

@loewenheim

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions