\ No newline at end of file
diff --git a/index.cljs.html b/index.cljs.html
index f6fb5d1..b1ae4e9 100644
--- a/index.cljs.html
+++ b/index.cljs.html
@@ -1,4 +1,4 @@
-Telemere 1.0.0-beta16
\ No newline at end of file
diff --git a/index.html b/index.html
index c4203f0..3b5a08a 100644
--- a/index.html
+++ b/index.html
@@ -1,3 +1,3 @@
-Telemere 1.0.0-beta16
\ No newline at end of file
diff --git a/taoensso.telemere.cljs.html b/taoensso.telemere.cljs.html
index ff33ec5..6c4e0fe 100644
--- a/taoensso.telemere.cljs.html
+++ b/taoensso.telemere.cljs.html
@@ -1,6 +1,6 @@
-taoensso.telemere documentation
Structured telemetry for Clojure/Script applications.
See the GitHub page (esp. Wiki) for info on motivation and design:
<https://www.taoensso.com/telemere>
Optional context (state) attached to all signals.
@@ -31,7 +31,27 @@ futures, agents, etc.
Tips:
- Compose multiple middleware fns together with `comp-middleware`.
- - Use `get-env` to set default (root) value based on environmental config.
Experimental, subject to change.
+(fn [root?]) used to generate signal `:uid` values when tracing.
+These are basically unique signal instance identifiers.
+
+`root?` argument is true iff signal is a top-level trace (i.e. form
+being traced is unnested = has no parent form).
+
+Root uids typically have ~128 bits of entropy to ensure uniqueness.
+Child uids are typically used only with respect to a parent/root,
+and so can often make do with ~64 bits of entropy or less.
+
+Smaller uids are generally cheaper to generate, and use less space
+when serializing/transmitting/storing/etc.
+
+By default generates nano-style uids like
+ "r76-B8LoIPs5lBG1_Uhdy" (root) and "tMEYoZH0K-" (non-root).
+
+For plain fixed-length UUIDs use: (fn [_root?] (utils/uuid))
+For plain fixed-length UUID strings use: (fn [_root?] (utils/uuid-str))
+
+See also `utils/nano-uid-fn`, `utils/hex-id-fn`, etc.
Registers given signal handler and returns
{<handler-id> {:keys [dispatch-opts handler-fn]}} for all handlers
now registered.
@@ -54,7 +74,7 @@ NB you should always call `stop-handlers!` somewhere appropriate - usually
near the end of your `-main` or shutdown procedure, AFTER all other code has
completed that could create signals.
-See `help:handler-dispatch-options` for handler filters, etc.
(catch->error! form)(catch->error! id form)(catch->error! {:as opts, :keys [rethrow? catch-val elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} form)
Unconditionally executes given form and-
If form succeeds: return the form's result.
If form throws:
Call `error!` with the thrown error and the given signal options [2],
@@ -99,7 +119,7 @@ returned composite fn immediately returns nil:
((comp-middleware inc #(* % 2) inc) 1) => 5 ; (inc (* (inc 1) 2))
((comp-middleware inc (fn [_] nil) (fn [_] (throw (Exception. "Never thrown!")))) 1) => nil
-Useful for composing Ring-style middleware fns.
(error! error)(error! id error)(error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]} error)
"Error" signal creator, emphasizing error + id.
+Useful for composing Ring-style middleware fns.
(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
+that indicates that it's an error.
(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
API: [id] [id level-or-opts] => true iff signal was allowed
Default kind: `:event`
@@ -522,8 +542,8 @@ Default signal keys:
`:inst` -------- Platform instant [1] when signal was created
`:level` ------- Signal level ∈ #{<int> :trace :debug :info :warn :error :fatal :report ...}
`:kind` -------- Signal ?kind ∈ #{nil :event :error :log :trace :spy :slf4j :tools-logging <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`)
+`: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 when tracing, contrast with `:id`)
`:msg` --------- Arb app-level message ?str given to signal creator
`:data` -------- Arb app-level data ?val (usu. a map) given to signal creator
@@ -536,12 +556,17 @@ Default signal keys:
`:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created
`:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing
+`:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing
+
`:location` ---- ?{:keys [ns file line column]} signal creator callsite
`:ns` ---------- ?str namespace of signal creator callsite, same as (:ns location)
`:line` -------- ?int line of signal creator callsite, same as (:line location)
`:column` ------ ?int column of signal creator callsite, same as (:column location)
`:file` -------- ?str filename of signal creator callsite, same as (:file location)
-`:thread` ------ (Clj only) {:keys [group name id]} thread info for thread that called signal creator
+
+`:host` -------- (Clj only) {:keys [name ip]} info for network host
+`:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal
+
`:sample-rate` - ?rate ∈ℝ[0,1] for combined signal AND handler sampling (0.75 => allow 75% of signals, nil => allow all)
<kvs> ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included
@@ -567,13 +592,13 @@ various keys:
Creators vary only in in their default options and call APIs (expected args
and return values), making them more/less convenient for certain use cases:
- `log!` ---------- [message + opts/level] => true iff signal was created (allowed)
- `event!` -------- [id + opts/level] => true iff signal was created (allowed)
- `error!` -------- [error + opts/id ] => given error (unconditional)
- `trace!` -------- [form + opts/id ] => form result (value/throw) (unconditional)
- `spy!` ---------- [form + opts/level] => form result (value/throw) (unconditional)
- `catch->error!` - [error + opts/id ] => form value, or given fallback
- `signal!` ------- [ opts ] => depends on options
+ `event!` -------- [id ] or [id opts/level] => true iff signal was created (allowed)
+ `log!` ---------- [msg ] or [opts/level msg] => true iff signal was created (allowed)
+ `error!` -------- [error] or [opts/id error] => given error (unconditional)
+ `trace!` -------- [form ] or [opts/id form] => form result (value/throw) (unconditional)
+ `spy!` ---------- [form ] or [opts/level form] => form result (value/throw) (unconditional)
+ `catch->error!` - [form ] or [opts/id form] => form value, or given fallback
+ `signal!` ------- [opts ] => depends on options
- `log!` and `event!` are both good default/general-purpose signal creators.
- `log!` emphasizes messages, while `event!` emphasizes ids.
@@ -599,7 +624,8 @@ and return values), making them more/less convenient for certain use cases:
`: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 info 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)
@@ -618,7 +644,7 @@ 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`
(log! msg)(log! level msg)(log! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} msg)
"Log" signal creator, emphasizing message + level.
API: [msg] [level-or-opts msg] => true iff signal was allowed.
Default kind: `:log`
@@ -760,7 +786,7 @@ Examples:
- {:allow <spec> :disallow <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:disallow` spec MUST NOT match.
(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]})
Low-level generic signal creator.
+the new value. Cross-platform. See also `update-var-root!`.
(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]})
Low-level generic signal creator.
API: [opts] => depends on options [2]
Default kind: none (optional)
@@ -787,7 +813,7 @@ Tips:
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
-[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
+[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
API: [form] [level-or-opts form] => form's result (value/throw) (unconditional)
Default kind: `:spy`
@@ -838,7 +864,7 @@ handler's `:drain-msecs` value (see `help:handler-dispatch-options`).
NB you should always call `stop-handlers!` somewhere appropriate - usually
near the end of your `-main` or shutdown procedure, AFTER all other code has
-completed that could create signals.
(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
+completed that could create signals.
(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
API: [form] [id-or-opts form] => form's result (value/throw) (unconditional)
Default kind: `:trace`
@@ -882,7 +908,7 @@ Tips:
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
-[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
Experimental, subject to change.
Executes given form, trapping errors. Returns the LAST signal created by form.
Useful for tests/debugging.
@@ -925,7 +951,7 @@ Options:
Should delayed `:msg_` in returned signal be retained as-is?
Delay is otherwise replaced by realized string.
-See also `with-signals`.
Executes form without any runtime signal filters.
diff --git a/taoensso.telemere.html b/taoensso.telemere.html
index 5328cab..c899ab4 100644
--- a/taoensso.telemere.html
+++ b/taoensso.telemere.html
@@ -1,6 +1,6 @@
-taoensso.telemere documentation
Structured telemetry for Clojure/Script applications.
See the GitHub page (esp. Wiki) for info on motivation and design:
<https://www.taoensso.com/telemere>
Optional context (state) attached to all signals.
@@ -31,7 +31,27 @@ futures, agents, etc.
Tips:
- Compose multiple middleware fns together with `comp-middleware`.
- - Use `get-env` to set default (root) value based on environmental config.
Experimental, subject to change.
+(fn [root?]) used to generate signal `:uid` values when tracing.
+These are basically unique signal instance identifiers.
+
+`root?` argument is true iff signal is a top-level trace (i.e. form
+being traced is unnested = has no parent form).
+
+Root uids typically have ~128 bits of entropy to ensure uniqueness.
+Child uids are typically used only with respect to a parent/root,
+and so can often make do with ~64 bits of entropy or less.
+
+Smaller uids are generally cheaper to generate, and use less space
+when serializing/transmitting/storing/etc.
+
+By default generates nano-style uids like
+ "r76-B8LoIPs5lBG1_Uhdy" (root) and "tMEYoZH0K-" (non-root).
+
+For plain fixed-length UUIDs use: (fn [_root?] (utils/uuid))
+For plain fixed-length UUID strings use: (fn [_root?] (utils/uuid-str))
+
+See also `utils/nano-uid-fn`, `utils/hex-id-fn`, etc.
Registers given signal handler and returns
{<handler-id> {:keys [dispatch-opts handler-fn]}} for all handlers
now registered.
@@ -56,7 +76,7 @@ completed that could create signals.
See `help:handler-dispatch-options` for handler filters, etc.
call-on-shutdown!
clj
added in Encore v3.114.0 (2024-08-07)
(call-on-shutdown! f)
Registers given nullary fn as a JVM shutdown hook.
(f) will be called sometime during shutdown. While running, it will
-attempt to block shutdown.
(catch->error! form)(catch->error! id form)(catch->error! {:as opts, :keys [rethrow? catch-val elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} form)
Unconditionally executes given form and-
If form succeeds: return the form's result.
If form throws:
Call `error!` with the thrown error and the given signal options [2],
@@ -106,7 +126,7 @@ returned composite fn immediately returns nil:
((comp-middleware inc (fn [_] nil) (fn [_] (throw (Exception. "Never thrown!")))) 1) => nil
Useful for composing Ring-style middleware fns.
(error! error)(error! id error)(error! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]} error)
"Error" signal creator, emphasizing error + id.
+`help:handler-dispatch-options` for details.
(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
+that indicates that it's an error.
(event! id)(event! id level)(event! id {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]})
"Event" signal creator, emphasizing id + level.
API: [id] [id level-or-opts] => true iff signal was allowed
Default kind: `:event`
@@ -552,8 +572,8 @@ Default signal keys:
`:inst` -------- Platform instant [1] when signal was created
`:level` ------- Signal level ∈ #{<int> :trace :debug :info :warn :error :fatal :report ...}
`:kind` -------- Signal ?kind ∈ #{nil :event :error :log :trace :spy :slf4j :tools-logging <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`)
+`: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 when tracing, contrast with `:id`)
`:msg` --------- Arb app-level message ?str given to signal creator
`:data` -------- Arb app-level data ?val (usu. a map) given to signal creator
@@ -566,12 +586,17 @@ Default signal keys:
`:ctx` --------- ?val of `*ctx*` (arb app-level state) when signal was created
`:parent` ------ ?{:keys [id uid]} of parent signal, present in nested signals when tracing
+`:root` -------- ?{:keys [id uid]} of root signal, present in nested signals when tracing
+
`:location` ---- ?{:keys [ns file line column]} signal creator callsite
`:ns` ---------- ?str namespace of signal creator callsite, same as (:ns location)
`:line` -------- ?int line of signal creator callsite, same as (:line location)
`:column` ------ ?int column of signal creator callsite, same as (:column location)
`:file` -------- ?str filename of signal creator callsite, same as (:file location)
-`:thread` ------ (Clj only) {:keys [group name id]} thread info for thread that called signal creator
+
+`:host` -------- (Clj only) {:keys [name ip]} info for network host
+`:thread` ------ (Clj only) {:keys [name id group]} info for thread that created signal
+
`:sample-rate` - ?rate ∈ℝ[0,1] for combined signal AND handler sampling (0.75 => allow 75% of signals, nil => allow all)
<kvs> ---------- Other arb app-level ?kvs given to signal creator. Typically NOT included
@@ -597,13 +622,13 @@ various keys:
Creators vary only in in their default options and call APIs (expected args
and return values), making them more/less convenient for certain use cases:
- `log!` ---------- [message + opts/level] => true iff signal was created (allowed)
- `event!` -------- [id + opts/level] => true iff signal was created (allowed)
- `error!` -------- [error + opts/id ] => given error (unconditional)
- `trace!` -------- [form + opts/id ] => form result (value/throw) (unconditional)
- `spy!` ---------- [form + opts/level] => form result (value/throw) (unconditional)
- `catch->error!` - [error + opts/id ] => form value, or given fallback
- `signal!` ------- [ opts ] => depends on options
+ `event!` -------- [id ] or [id opts/level] => true iff signal was created (allowed)
+ `log!` ---------- [msg ] or [opts/level msg] => true iff signal was created (allowed)
+ `error!` -------- [error] or [opts/id error] => given error (unconditional)
+ `trace!` -------- [form ] or [opts/id form] => form result (value/throw) (unconditional)
+ `spy!` ---------- [form ] or [opts/level form] => form result (value/throw) (unconditional)
+ `catch->error!` - [form ] or [opts/id form] => form value, or given fallback
+ `signal!` ------- [opts ] => depends on options
- `log!` and `event!` are both good default/general-purpose signal creators.
- `log!` emphasizes messages, while `event!` emphasizes ids.
@@ -629,7 +654,8 @@ and return values), making them more/less convenient for certain use cases:
`: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 info 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)
@@ -649,7 +675,7 @@ If anything is unclear, please ping me (@ptaoussanis) so that I can improve thes
[1] `java.time.Instant` or `js/Date`
[2] `java.lang.Throwable` or `js/Error`
(log! msg)(log! level msg)(log! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error & kvs]} msg)
"Log" signal creator, emphasizing message + level.
API: [msg] [level-or-opts msg] => true iff signal was allowed.
Default kind: `:log`
@@ -798,7 +824,7 @@ Examples:
- {:allow <spec> :disallow <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:disallow` spec MUST NOT match.
(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]})
Low-level generic signal creator.
+the new value. Cross-platform. See also `update-var-root!`.
(signal! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]})
Low-level generic signal creator.
API: [opts] => depends on options [2]
Default kind: none (optional)
@@ -825,7 +851,7 @@ Tips:
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
-[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
+[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
(spy! form)(spy! id form)(spy! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Spy" signal creator, emphasizing form + level.
API: [form] [level-or-opts form] => form's result (value/throw) (unconditional)
Default kind: `:spy`
@@ -889,7 +915,7 @@ and setting `System/err` won't necessarily affect Clojure's `*err*`.
See also:
`with-out->telemere`,
`with-err->telemere`,
- `with-streams->telemere`.
(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
+ `with-streams->telemere`.
(trace! form)(trace! id form)(trace! {:as opts, :keys [elidable? location inst uid middleware sample-rate kind ns id level when rate-limit ctx parent root trace? do let data msg error run & kvs]} form)
"Trace" signal creator, emphasizing form + id.
API: [form] [id-or-opts form] => form's result (value/throw) (unconditional)
Default kind: `:trace`
@@ -933,7 +959,7 @@ Tips:
[1] See `help:signal-creators` - (`signal!`, `log!`, `event!`, ...)
[2] See `help:signal-options` - {:keys [kind level id data ...]}
[3] See `help:signal-content` - {:keys [kind level id data ...]}
-[4] See `help:signal-filters` - (by ns/kind/id/level, sampling, etc.)
Experimental, subject to change.
Executes given form, trapping errors. Returns the LAST signal created by form.
Useful for tests/debugging.
@@ -979,7 +1005,7 @@ Options:
Should delayed `:msg_` in returned signal be retained as-is?
Delay is otherwise replaced by realized string.
-See also `with-signals`.
Executes form without any runtime signal filters.
diff --git a/taoensso.telemere.open-telemetry.html b/taoensso.telemere.open-telemetry.html
index 05d39bb..4c6d9da 100644
--- a/taoensso.telemere.open-telemetry.html
+++ b/taoensso.telemere.open-telemetry.html
@@ -1,23 +1,35 @@
-taoensso.telemere.open-telemetry documentation
Experimental, subject to change. Feedback welcome!
+Uses `AutoConfiguredOpenTelemetrySdk` when possible, or
+`GlobalOpenTelemetry` otherwise.
+
+See the relevant `opentelemetry-java` docs for details.
Highly experimental, possibly buggy, and subject to change!!
+Feedback and bug reports very welcome! Please ping me (Peter) at:
+ <https://www.taoensso.com/telemere> or
+ <https://www.taoensso.com/telemere/slack>
Needs `opentelemetry-java`,
Ref. <https://github.com/open-telemetry/opentelemetry-java>.
Returns a signal handler that:
- Takes a Telemere signal (map).
- - Emits the signal to `io.opentelemetry.api.logs.Logger` returned
- by given `io.opentelemetry.api.logs.LoggerProvider`.
+ - Emits signal data to configured `io.opentelemetry.api.logs.Logger`
+ - Emits tracing data to configured `io.opentelemetry.api.logs.Tracer`
Options:
- `:logger-provider` - `io.opentelemetry.api.logs.LoggerProvider`
- Defaults to the LoggerProvider returned by (default-logger-provider),
- see that docstring for details.
IAttr+
protocol
clj
\ No newline at end of file
+ `:logger-provider` - ∈ #{nil :default <io.opentelemetry.api.logs.LoggerProvider>} [1]
+ `:tracer-provider` - ∈ #{nil :default <io.opentelemetry.api.trace.TracerProvider>} [1]
+ `:max-span-msecs` - (Advanced) Longest tracing span to support in milliseconds
+ (default 120 mins). If recorded spans exceed this max, emitted
+ data will be inaccurate. Larger values use more memory.
+
+[1] See `get-default-providers` for more info
\ No newline at end of file
diff --git a/taoensso.telemere.postal.html b/taoensso.telemere.postal.html
index 4dfbac5..edeb2db 100644
--- a/taoensso.telemere.postal.html
+++ b/taoensso.telemere.postal.html
@@ -1,6 +1,6 @@
-taoensso.telemere.postal documentation
Experimental, subject to change.
Returns a signal handler that:
@@ -20,7 +20,8 @@ Options:
Limitations:
- Failed writes will be retried only once.
- Writes lock on a single underlying socket, so IO won't benefit from adding
- extra handler threads. Let me know if there's demand for socket pooling.
\ No newline at end of file
diff --git a/taoensso.telemere.timbre.html b/taoensso.telemere.timbre.html
index 4e80b51..7d6e263 100644
--- a/taoensso.telemere.timbre.html
+++ b/taoensso.telemere.timbre.html
@@ -1,6 +1,6 @@
-taoensso.telemere.timbre documentation
Intake support for `tools.logging` -> Telemere.
Telemere will attempt to load this ns automatically when possible.
Naming conventions:
diff --git a/taoensso.telemere.utils.cljs.html b/taoensso.telemere.utils.cljs.html
index edc3ed3..437d33c 100644
--- a/taoensso.telemere.utils.cljs.html
+++ b/taoensso.telemere.utils.cljs.html
@@ -1,6 +1,6 @@
-taoensso.telemere.utils documentation
Experimental, subject to change.
+Returns a (fn hex-uid [root?]) that returns a random hex-style uid string like:
+ "05039666eb9dc3206475f44ab9f3d843" - 128 bit (32 char) root uid
+ "721fcef639a51513" - 64 bit (16 char) non-root (child) uid
js-console-logger
cljs
(js-console-logger level)
Returns JavaScript console logger to match given signal level:
`:trace` -> `js/console.trace`,
`:error` -> `js/console.error`, etc.
Defaults to `js.console.log` for unmatched signal levels.
-NB: assumes that `js/console` exists, handler constructors should check first!
Returns a random UUID string of given length (max 36).
+Uses strong randomness when possible. See also `uuid`, `nanoid`, `rand-id-fn`.
\ No newline at end of file
diff --git a/taoensso.telemere.utils.html b/taoensso.telemere.utils.html
index 1f3d4d5..5f34e73 100644
--- a/taoensso.telemere.utils.html
+++ b/taoensso.telemere.utils.html
@@ -1,6 +1,6 @@
-taoensso.telemere.utils documentation
Returns ?{:keys [ip name]} with string vals or `fallback-val` (default nil).
+Arities 0 and 3 are cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.
Returns local host IP string or `fallback-val` (default nil).
+Arities 0 and 3 are cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.
Returns local hostname string or `fallback-val` (default nil).
+Arities 0 and 3 are cached, prefer these!
+Arities 1 and 2 are uncached and intended for advanced users only.
Experimental, subject to change.
Returns a (fn pr [signal]) that:
@@ -107,7 +117,12 @@ Notes:
- Will retry failed writes once, then drop.
- Thread safe, locks on single socket stream.
- Advanced users may want a custom implementation using a connection
- pool and/or more sophisticated retry semantics, etc.
thread-id
clj
(thread-id)
Returns long id of current thread.
-
thread-info
clj
(thread-info)
Returns {:keys [group name id]} for current thread.
-
thread-name
clj
(thread-name)
Returns string name of current thread.
-
\ No newline at end of file
+ pool and/or more sophisticated retry semantics, etc.
thread-id
clj
added in Encore v3.115.0 (2024-08-18)
(thread-id)
Returns long id of current `Thread`.
+
thread-info
clj
added in Encore v3.115.0 (2024-08-18)
(thread-info)
Returns {:keys [group name id]} for current `Thread`.
+
thread-name
clj
added in Encore v3.115.0 (2024-08-18)
(thread-name)
Returns string name of current `Thread`.
+
uuid
clj
added in Encore v3.75.0 (2024-01-29)
(uuid)
For Clj: returns a random `java.util.UUID`.
+For Cljs: returns a random UUID string.
+
+Uses strong randomness when possible.
+See also `uuid-str`, `nanoid`, `rand-id-fn`.