mirror of
https://github.com/taoensso/telemere.git
synced 2026-02-20 17:39:09 +00:00
[new] add signal->span-attrs-fn option to opentelemetry handler
This commit is contained in:
parent
d9c78e744a
commit
e51c8f1097
1 changed files with 8 additions and 2 deletions
|
|
@ -222,6 +222,8 @@
|
||||||
`:logger-provider` - nil or `io.opentelemetry.api.logs.LoggerProvider`,
|
`:logger-provider` - nil or `io.opentelemetry.api.logs.LoggerProvider`,
|
||||||
(see `telemere/otel-default-providers_` for default).
|
(see `telemere/otel-default-providers_` for default).
|
||||||
`:emit-tracing?` - set to `false` to disable tracing.
|
`:emit-tracing?` - set to `false` to disable tracing.
|
||||||
|
`:signal->span-attrs-fn` - fn of signal -> `io.opentelemetry.api.common.Attributes`,
|
||||||
|
adds the returned `Attributes` to a span."
|
||||||
|
|
||||||
;; Notes:
|
;; Notes:
|
||||||
;; - Multi-threaded handlers may see signals ~out of order
|
;; - Multi-threaded handlers may see signals ~out of order
|
||||||
|
|
@ -229,8 +231,9 @@
|
||||||
;; - `:otel/attrs`, `:otel/context` currently undocumented
|
;; - `:otel/attrs`, `:otel/context` currently undocumented
|
||||||
|
|
||||||
([] (handler:open-telemetry nil))
|
([] (handler:open-telemetry nil))
|
||||||
([{:keys [emit-tracing? logger-provider]
|
([{:keys [emit-tracing? logger-provider signal->span-attrs-fn]
|
||||||
:or {emit-tracing? true}}]
|
:or {emit-tracing? true
|
||||||
|
signal->span-attrs-fn (constantly nil)}}]
|
||||||
|
|
||||||
(let [?logger-provider
|
(let [?logger-provider
|
||||||
(if (not= logger-provider :default)
|
(if (not= logger-provider :default)
|
||||||
|
|
@ -292,6 +295,9 @@
|
||||||
(when-let [^Attributes attrs (basic-span-attrs signal)]
|
(when-let [^Attributes attrs (basic-span-attrs signal)]
|
||||||
(.setAllAttributes span attrs))
|
(.setAllAttributes span attrs))
|
||||||
|
|
||||||
|
(when-let [^Attributes attrs (signal->span-attrs-fn signal)]
|
||||||
|
(.setAllAttributes span attrs))
|
||||||
|
|
||||||
;; Error stuff
|
;; Error stuff
|
||||||
(when-let [error (get signal :error)]
|
(when-let [error (get signal :error)]
|
||||||
(when (instance? Throwable error)
|
(when (instance? Throwable error)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue