-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EPIC] Generic Inbound Filters #57799
Comments
Remaining steps depend on getsentry/relay#2584: When the filter config moves to global config, we cannot apply filters as long as global config is not yet loaded. |
Related: Replay customers currently suffer from issues when sampling OnError replays and inbound filters drop the event that triggers the replay to start: |
@iambriccardo wanted to follow-up about the work of moving filters from project endpoint to inbound filters endpoint. We have request from partner to support filter for Was wondering if you're adding them all to a filter endpoint and if so what are the timelines? |
This work is on the Ingest plate. We're all busy with metrics but the config merge part we will do asap. It could get done in the next couple of weeks but we'll keep you posted. |
@jernejstrasner sounds good. Since the partner need this faster and we don't want to get your focus away from metrics work either, I will write private documentation for them to use the Project Update Endpoint meanwhile. When we do the refactory, before re-moving the inbound filter from projects endpoint we should make sure to let them know to move to the new solution. @iambriccardo I will send over the doc to you to review before sending to them. Thank you. |
@jernejstrasner to be clear, is the work that is on ingest plate moving all filters out of project details endpoint and to a filters endpoint? |
@sentaur-athena creating a new sentry API endpoint for inbound filters is out of scope for this epic IMO, because it's a different concern (API <-> client communication vs. sentry <-> relay communication). |
Support for generic inbound filters is now complete! Filters are defined in Sentry and automagically forwarded to and applied in Relay (no Relay changes required). Creating new filters is as easy as expanding the project filter list to apply filters to a specific project, or the global filter list to apply filters to all projects. Global filters are overwritten by project filters, making it easy to apply filters to some/most projects with minimal config size overhead. If you'd like to add new filters but are unsure of how to leverage both configs, don't hesitate to reach out. |
Problem
The inbound filters configuration is currently quite limited, since it's based on a pre-defined set of filters, that are defined statically in both Sentry and Relay. Such manual configuration is a tedious process and is quite limited, since it requires quite a lot of manual work to satisfy even the simplest of constraints.
An example of inbound filters config:
Possible Solution
Relay offers a DSL for matching incoming events which is now used in both dynamic sampling and metric extraction. Such DSL enables developers to express composite conditions on the incoming event's payload, which can already satisfy a lot of existing matching logic implemented for inbound filters.
The idea would be to introduce a new
generic
field that will contain key-value pairs of inbound filters and their condition for filtering. For efficiency reasons the definition of rules could leverage the new global config system of Relay and just propagate the active status as project scoped configuration.The implementation of inbound filters could look something like:
Such a new configuration will be backward compatible by having Sentry generate inbound filters with both DSLs for a fixed amount of time. After that time the old configuration will be faded out resulting in old custom Relays not inbound filtering.
Work To Do
Tasks
The text was updated successfully, but these errors were encountered: