2024-03-11 08:49:56 +00:00
|
|
|
A signal will be provided to a handler iff ALL of the following are true:
|
2024-04-12 12:57:24 +00:00
|
|
|
1. Signal (creation) is allowed by compile-time filters
|
|
|
|
|
2. Signal (creation) is allowed by runtime filters
|
|
|
|
|
3. Signal (handling) is allowed by handler filters
|
2024-03-11 08:49:56 +00:00
|
|
|
|
2024-04-12 12:57:24 +00:00
|
|
|
4. Signal middleware does not suppress the signal (return nil)
|
|
|
|
|
5. Handler middleware does not suppress the signal (return nil)
|
2024-03-11 08:49:56 +00:00
|
|
|
|
2024-04-12 12:57:24 +00:00
|
|
|
For 1-3, filtering may depend on (in order):
|
|
|
|
|
Sample rate → namespace → kind → id → level → when form/fn → rate limit
|
2024-03-11 08:49:56 +00:00
|
|
|
|
2024-04-12 12:57:24 +00:00
|
|
|
Note that sample rates are multiplicative:
|
|
|
|
|
If a signal is created with 20% sampling and a handler handles 50%
|
|
|
|
|
of given signals, then 10% of possible signals will be handled.
|
|
|
|
|
|
2024-04-15 07:57:40 +00:00
|
|
|
This multiplicative rate is helpfully reflected in each signal's final
|
2024-04-12 12:57:24 +00:00
|
|
|
`:sample-rate` value.
|
2024-03-11 08:49:56 +00:00
|
|
|
|
2024-04-12 12:57:24 +00:00
|
|
|
For a visual flowchart, see: Ref. <https://www.taoensso.com/telemere/flow>
|
|
|
|
|
|
|
|
|
|
For more info:
|
2024-04-15 07:57:40 +00:00
|
|
|
- On signal filters, see: `help:signal-filters` docstring
|
|
|
|
|
- On handler filters, see: `help:signal-handlers` docstring
|
2024-03-11 08:49:56 +00:00
|
|
|
|
|
|
|
|
If anything is unclear, please ping me (@ptaoussanis) so that I can
|
|
|
|
|
improve these docs!
|