hiroshinishio / sentry-javascript

Official Sentry SDKs for JavaScript
https://sentry.io
MIT License
0 stars 0 forks source link

DSC can cause replay durations to be inaccurate and exceed the replay limit #4

Open hiroshinishio opened 2 months ago

hiroshinishio commented 2 months ago

DSC can cause replay durations to exceed our 1 hour maximum because the DSC is frozen and does not update. This means that if the replay session on the client expires, any following events will still have the expired replay id attached to the DSC.

This does not affect frontend errors as we are still tagging error events with the current replay id, but it does affect backend errors that occur as it will use the replay id in the DSC. This affects the replay event's "finished_at" and "duration" fields as we take the MAX() timestamp of all of the events that are related to the replay.

Historically, DSC is meant to be frozen because:

a lot of the original assumptions for dynamic sampling are no longer relevant the reason for it being frozen were that every part of the trace gets sampled consistently by relay but if that does not matter, it doesn't need to be frozen

We will need to talk to the ingest team, but it sounds like we shouldn't have any issues modifying replay id as it is not used to make any sampling decisions:

We should check back with ingest folks but from my pov it actually shouldn't be a problem mutating the replay-id because I don't think anything downstream uses it to sample

Closes https://github.com/getsentry/sentry-javascript/issues/13778

gitauto-ai[bot] commented 2 months ago

Click the checkbox below to generate a PR!

@hiroshinishio, You have 5 requests left in this cycle which refreshes on 2024-11-04 02:56:25+00:00. If you have any questions or concerns, please contact us at info@gitauto.ai.

gitauto-ai[bot] commented 2 months ago

Sorry, we have an error. Please try again.

Have feedback or need help? Feel free to email info@gitauto.ai.