Skip to content

Deprecate startTransaction #1953

@Litarnus

Description

@Litarnus

There are multiple ways how we could deprecate/remote startTransaction:

Alter the signature to allow returning null values

We would check the current trace_lifecycle value and depending on the value, either return a Transaction or return null. We could also start a (segment) span instead so that all usages of startTransaction would become wrappers over startSpan.

It will break code that operates on the transaction.

Return a "null" Transaction

We could subclass the current Transaction class and override all methods so they don't do anything but don't crash any application. While this looks like the safer approach, it will also hide usages of startTransaction and might make it more difficult to properly switch since everything will just continue to work and it will only be noticed once weird data shows up in sentry

Return an unsampled Transaction

If the current trace_lifecycle is set to stream, startTransaction will return an unsampled transaction. This way nothing breaks but also nothing shows up in Sentry.

All cases should emit debug logs to help figure out what is going on during the transition.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions