mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-17 01:51:10 +00:00
Tracing signals now include:
:parent {:keys [id uid instant]}
:root {:keys [id uid instant]}
The :instant info is undocumented, and useful for advanced cases like
the upcoming Span support for the OpenTelemetry handler.
38 lines
2.4 KiB
Text
38 lines
2.4 KiB
Text
Signal options (shared by all signal creators):
|
|
|
|
`:inst` -------- Platform instant [1] when signal was created, ∈ #{nil :auto <[1]>}
|
|
`:level` ------- Signal level ∈ #{<int> :trace :debug :info :warn :error :fatal :report ...}
|
|
`:kind` -------- Signal ?kind ∈ #{nil :event :error :log :trace :spy <app-val> ...}
|
|
`:id` ---------- ?id of signal (common to all signals created at callsite, contrast with `:uid`)
|
|
`:uid` --------- ?id of signal instance (unique to each signal created at callsite, contrast with `:id`)
|
|
|
|
`:msg` --------- Arb app-level ?message to incl. in signal: str or vec of strs to join (with `\space`)
|
|
`:data` -------- Arb app-level ?data to incl. in signal: usu. a map
|
|
`:error` ------- Arb app-level ?error to incl. in signal: platform error [2]
|
|
|
|
`:run` --------- ?form to execute UNCONDITIONALLY; will incl. `:run-value` in signal
|
|
`:do` ---------- ?form to execute conditionally (iff signal allowed), before establishing `:let` ?binding
|
|
`:let` --------- ?bindings to establish conditionally (iff signal allowed), BEFORE evaluating `:data` and `:msg` (useful!)
|
|
|
|
`:ctx` --------- Custom ?val to override auto (dynamic `*ctx*`) in signal
|
|
`:parent` ------ Custom ?{:keys [id uid]} to override auto (dynamic) parent signal tracing info
|
|
`:root` -------- Custom ?{:keys [id uid]} to override auto (dynamic) root signal tracing info
|
|
`:location` ---- Custom ?{:keys [ns line column file]} to override auto signal creator callsite location
|
|
|
|
`:elidable?` --- Should signal be subject to compile-time elision? (Default: true)
|
|
`:sample-rate` - ?rate ∈ℝ[0,1] for signal sampling (0.75 => allow 75% of signals, nil => allow all)
|
|
`:when` -------- Arb ?form; when present, form must return truthy to allow signal
|
|
`:rate-limit` -- ?spec as given to `taoensso.telemere/rate-limiter`, see its docstring for details
|
|
`:middleware` -- Optional (fn [signal]) => ?modified-signal to apply when signal is created
|
|
`:trace?` ------ Should tracing be enabled for `:run` form?
|
|
|
|
<kvs> ---------- Other arb app-level ?kvs to incl. in signal. Typically NOT included in
|
|
handler output, so a great way to provide custom data/opts for use
|
|
(only) by custom middleware/handlers.
|
|
|
|
handler-specific data that can just be ignored by other handlers
|
|
|
|
If anything is unclear, please ping me (@ptaoussanis) so that I can improve these docs!
|
|
|
|
[1] `java.time.Instant` or `js/Date`
|
|
[2] `java.lang.Throwable` or `js/Error`
|