-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
What is the underlying problem you're trying to solve?
When using the decision log plugin (outside of an SDK), it can only be configured to periodically upload the logged events. The periodic trigger timing is controlled by the options min_delay_seconds
and max_delay_seconds
, which gives the user a controllable sliding window of time when events are uploaded. Creating a jitter effect. This helps the backend receiving the events not get overloaded with events.
The problem is that if stream of incoming events increases and the delay is too big events could start dropping. To prevent dropping events the users only option is to manually adjust the periodic timer so uploads occur more frequently.
This idea was suggested by @mjungsbluth, thank you!
Describe the ideal solution
Add a new trigger option that changes uploads to occur as soon as the buffer limit is reached OR if the periodic maximum trigger happens. This would enable a more constant stream of events uploaded and minimize dropped events.
The trigger option could be nameddecision_logs.reporting.trigger=upload_size_limit
.
name ideas:
- immediate
- stream
- async_push
- ???
Describe a "Good Enough" solution
Ideally this new trigger option should be supported by both the current buffer implementation and the one being introduced in this PR. But only supporting it for the new "event" buffer implementation would be a good enough solution until there is a demand to also add it to the current implementation.
Additional Context
Metadata
Metadata
Assignees
Labels
Type
Projects
Status