Open
Description
Goal
The goal is to provide more granular control over event debouncing. Particularly, for high-frequency events like those from Update()
functions. This allows users to preserve quota while keeping error reporting intact.
Current Problem
- Events from
Update()
functions that run every frame can quickly consume error reporting quotas - Current debouncing is not flexible enough for different types of events.
i.e. There's not debouncing forexceptions
- Existing workarounds in
BeforeSend
(stack trace checking + random sampling) are hacky and might miss important errors
Current Implementation
We're using the following debouncer https://github.com/getsentry/sentry-unity/blob/main/src/Sentry.Unity/TimeDebounceBase.cs
in the Application Logging Integration
Proposal
Implement configurable debouncing that allows:
- Event based debouncing options:
error
,exception
- Different debouncing intervals for different event types?
- Deduplication detection
- Can the stacktrace be used?
- Can we leverage
exception.HResult
? Maybe in combination with the stacktrace?
Additional Consideration
The .NET SDK has its own debouncer now (for memory dumps). Can this be reused?
The Godot SDK has event throtteling implemented as part of its logging intgration.
Metadata
Metadata
Assignees
Type
Projects
Status
No status