\ No newline at end of file
diff --git a/index.cljs.html b/index.cljs.html
index 35dc35f..047e6cc 100644
--- a/index.cljs.html
+++ b/index.cljs.html
@@ -1,4 +1,4 @@
-Telemere 1.0.0-beta1
\ No newline at end of file
diff --git a/index.html b/index.html
index 1439203..f2c6a5c 100644
--- a/index.html
+++ b/index.html
@@ -1,3 +1,3 @@
-Telemere 1.0.0-beta1
\ No newline at end of file
diff --git a/taoensso.telemere.cljs.html b/taoensso.telemere.cljs.html
index c21eeeb..3578b37 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>
Dynamic context: arbitrary user-level state attached as `:ctx` to all signals.
@@ -51,7 +51,7 @@ Dispatch options include:
NB handling order may be non-sequential when `n-threads` > 1.
Default:
- {:mode :dropping, :buffer-size 4096, :n-threads 1, :daemon-threads? false}
+ {:mode :dropping, :buffer-size 1024, :n-threads 1, :daemon-threads? true}
Options:
`mode` - Mode of operation, ∈ #{:sync :blocking :dropping :sliding}.
@@ -302,10 +302,10 @@ Both compile-time and runtime config can be specified with:
Runtime config can also be specified with:
- `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
- `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
- `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
- `set-minimum-level!`, `with-minimum-level!` - for filtering calls by signal level
+ `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
+ `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
+ `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
+ `set-min-level!`, `with-min-level!` - for filtering calls by signal level
See the relevant docstrings for details.
@@ -460,10 +460,10 @@ See relevant docstrings for details.
Takes a spec of form
+ [ [<n-max-reqs> <msecs-window>] ...] or
+ {<limit-id> [<n-max-reqs> <msecs-window>]},
+and returns a basic stateful (fn a-rate-limiter [req-id] [command req-id]).
-Call fn with a single request id (e.g. username) by which to count/limit.
+Call the limiter fn with a request id (e.g. username) by which to count/limit.
Will return:
- - nil when all limits pass for that id, or
+ - nil when allowed (all limits pass for given req-id), or
- [<worst-limit-id> <worst-backoff-msecs> {<limit-id> <backoff-msecs>}]
- when any limits fail for that id.
+ when denied (any limits fail for given req-id).
-Or call fn with an additional command argument:
+Or call the limiter fn with an additional command argument:
`:rl/peek` <req-id> - Check limits w/o incrementing count.
`:rl/reset` <req-id> - Reset all limits for given req-id.
@@ -546,16 +548,16 @@ still registered.
Sets signal call id filter based on given `id-filter` spec.
`id-filter` may be:
- - A regex pattern of id/s to allow.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of id/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.
Sets signal call kind filter based on given `kind-filter` spec.
`kind-filter` may be:
- - A regex pattern of kind/s to allow.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of kind/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
@@ -563,24 +565,36 @@ still registered.
Sets minimum signal call level based on given `min-level` spec.
`min-level` may be:
- - An integer.
+ - `nil` (=> no minimum level).
- A level keyword (see `level-aliases` var for details).
+ - An integer.
If `ns-filter` is provided, then the given minimum level
-will apply only for namespaces that match `ns-filter`.
+will apply only for the namespace/s that match `ns-filter`.
See `set-ns-filter!` for details.
If non-nil `kind` is provided, then the given minimum level
-will apply only for that signal kind.
Sets signal call namespace filter based on given `ns-filter` spec.
+will apply only for that signal kind.
+
+Examples:
+
+ (set-min-level! nil) ; Disable minimum level
+ (set-min-level! :info) ; Set `:info` as minimum level
+ (set-min-level! 100) ; Set 100 as minimum level
+
+ ;; Set `:debug` as minimum level for current namespace
+ ;; (nil `kind` => apply to all kinds)
+ (set-min-level! nil *ns* :debug)
Sets signal call namespace filter based on given `ns-filter` spec.
`ns-filter` may be:
- - A regex pattern of namespace/s to allow.
+ - A namespace.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of namespace/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.
Shuts down all registered signal handlers in parallel, and returns
?{<handler-id> {:keys [okay error]}}.
Future calls to handlers will no-op.
@@ -638,7 +652,7 @@ Tips:
- Test using `with-signal`: (with-signal (spy! ...)).
- Supports the same options [2] as other signals [1].
- - Identical to `trace!`, but emphasizing form + level rather than form + id.
+ - Identical to `trace!`, but emphasizes form + level rather than form + id.
- Useful for debugging/monitoring forms, and tracing (nested) execution flow.
- Execution of `form` arg may create additional (nested) signals.
@@ -678,7 +692,7 @@ Tips:
- Test using `with-signal`: (with-signal (trace! ...)).
- Supports the same options [2] as other signals [1].
- - Identical to `spy!`, but emphasizing form + id rather than form + level.
+ - Identical to `spy!`, but emphasizes form + id rather than form + level.
- Useful for debugging/monitoring forms, and tracing (nested) execution flow.
- Execution of `form` arg may create additional (nested) signals.
diff --git a/taoensso.telemere.handlers.open-telemetry.html b/taoensso.telemere.handlers.open-telemetry.html
new file mode 100644
index 0000000..42c8abe
--- /dev/null
+++ b/taoensso.telemere.handlers.open-telemetry.html
@@ -0,0 +1,15 @@
+
+taoensso.telemere.handlers.open-telemetry documentation
Experimental, subject to change!! Feedback very welcome!
+Returns `io.opentelemetry.api.logs.LoggerProvider` via:
+ `AutoConfiguredOpenTelemetrySdk` when possible, or
+ `GlobalOpenTelemetry` otherwise.
Experimental, subject to change!! Feedback very welcome!
+
+Returns a (fn handler [signal]) that:
+ - Takes a Telemere signal.
+ - Emits signal content to the `io.opentelemetry.api.logs.Logger`
+ returned by given `io.opentelemetry.api.logs.LoggerProvider`.
IAttr+
protocol
clj
\ No newline at end of file
diff --git a/taoensso.telemere.html b/taoensso.telemere.html
index 8e74d53..23812ef 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>
Dynamic context: arbitrary user-level state attached as `:ctx` to all signals.
@@ -51,7 +51,7 @@ Dispatch options include:
NB handling order may be non-sequential when `n-threads` > 1.
Default:
- {:mode :dropping, :buffer-size 4096, :n-threads 1, :daemon-threads? false}
+ {:mode :dropping, :buffer-size 1024, :n-threads 1, :daemon-threads? true}
Options:
`mode` - Mode of operation, ∈ #{:sync :blocking :dropping :sliding}.
@@ -322,12 +322,7 @@ Options:
Maximum number of numbered archives to retain for any particular interval.
`:max-num-intervals` ∈ #{nil <pos-int>} (default 6)
- Maximum number of intervals (days/weeks/months) to retain.
Experimental, subject to change!! Feedback very welcome!
-
-Returns a (fn handler [signal]) that:
- - Takes a Telemere signal.
- - Emits signal content to the `io.opentelemetry.api.logs.Logger`
- returned by given `io.opentelemetry.api.logs.LoggerProvider`.
Your filter config determines which signal calls will be allowed.
Filtering can occur at compile-time (=> elision), or runtime.
Both compile-time and runtime config can be specified with:
@@ -337,10 +332,10 @@ Both compile-time and runtime config can be specified with:
Runtime config can also be specified with:
- `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
- `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
- `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
- `set-minimum-level!`, `with-minimum-level!` - for filtering calls by signal level
+ `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
+ `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
+ `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
+ `set-min-level!`, `with-min-level!` - for filtering calls by signal level
See the relevant docstrings for details.
@@ -457,10 +452,10 @@ Both compile-time and runtime config can be specified with:
Runtime config can also be specified with:
- `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
- `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
- `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
- `set-minimum-level!`, `with-minimum-level!` - for filtering calls by signal level
+ `set-kind-filter!`, `with-kind-filter` - for filtering calls by signal kind (when relevant)
+ `set-ns-filter!`, `with-ns-filter` - for filtering calls by namespace
+ `set-id-filter!`, `with-id-filter` - for filtering calls by signal id (when relevant)
+ `set-min-level!`, `with-min-level!` - for filtering calls by signal level
See the relevant docstrings for details.
@@ -549,10 +544,10 @@ improve these docs!
Takes a spec of form
+ [ [<n-max-reqs> <msecs-window>] ...] or
+ {<limit-id> [<n-max-reqs> <msecs-window>]},
+and returns a basic stateful (fn a-rate-limiter [req-id] [command req-id]).
-Call fn with a single request id (e.g. username) by which to count/limit.
+Call the limiter fn with a request id (e.g. username) by which to count/limit.
Will return:
- - nil when all limits pass for that id, or
+ - nil when allowed (all limits pass for given req-id), or
- [<worst-limit-id> <worst-backoff-msecs> {<limit-id> <backoff-msecs>}]
- when any limits fail for that id.
+ when denied (any limits fail for given req-id).
-Or call fn with an additional command argument:
+Or call the limiter fn with an additional command argument:
`:rl/peek` <req-id> - Check limits w/o incrementing count.
`:rl/reset` <req-id> - Reset all limits for given req-id.
@@ -643,16 +640,16 @@ still registered.
Sets signal call id filter based on given `id-filter` spec.
`id-filter` may be:
- - A regex pattern of id/s to allow.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of id/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.
Sets signal call kind filter based on given `kind-filter` spec.
`kind-filter` may be:
- - A regex pattern of kind/s to allow.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of kind/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
@@ -660,24 +657,36 @@ still registered.
Sets minimum signal call level based on given `min-level` spec.
`min-level` may be:
- - An integer.
+ - `nil` (=> no minimum level).
- A level keyword (see `level-aliases` var for details).
+ - An integer.
If `ns-filter` is provided, then the given minimum level
-will apply only for namespaces that match `ns-filter`.
+will apply only for the namespace/s that match `ns-filter`.
See `set-ns-filter!` for details.
If non-nil `kind` is provided, then the given minimum level
-will apply only for that signal kind.
Sets signal call namespace filter based on given `ns-filter` spec.
+will apply only for that signal kind.
+
+Examples:
+
+ (set-min-level! nil) ; Disable minimum level
+ (set-min-level! :info) ; Set `:info` as minimum level
+ (set-min-level! 100) ; Set 100 as minimum level
+
+ ;; Set `:debug` as minimum level for current namespace
+ ;; (nil `kind` => apply to all kinds)
+ (set-min-level! nil *ns* :debug)
Sets signal call namespace filter based on given `ns-filter` spec.
`ns-filter` may be:
- - A regex pattern of namespace/s to allow.
+ - A namespace.
- A str/kw/sym, in which "*"s act as wildcards.
+ - A regex pattern of namespace/s to allow.
- A vector or set of regex patterns or strs/kws/syms.
- {:allow <spec> :deny <spec>} with specs as above.
If present, `:allow` spec MUST match, AND
If present, `:deny` spec MUST NOT match.
Shuts down all registered signal handlers in parallel, and returns
?{<handler-id> {:keys [okay error]}}.
Future calls to handlers will no-op.
@@ -735,7 +744,7 @@ Tips:
- Test using `with-signal`: (with-signal (spy! ...)).
- Supports the same options [2] as other signals [1].
- - Identical to `trace!`, but emphasizing form + level rather than form + id.
+ - Identical to `trace!`, but emphasizes form + level rather than form + id.
- Useful for debugging/monitoring forms, and tracing (nested) execution flow.
- Execution of `form` arg may create additional (nested) signals.
@@ -761,12 +770,7 @@ and setting `System/err` won't necessarily affect Clojure's `*err*`.
See also:
`with-out->telemere`,
`with-err->telemere`,
- `with-streams->telemere`.
tools-logging->telemere!
clj
(tools-logging->telemere!)
Configures `clojure.tools.logging` to use Telemere as its logging implementation.
-
-Called automatically if the following is true:
- (get-env {:as :bool} :clojure.tools.logging->telemere?)
-
-See `get-env` for details.
(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 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`
@@ -793,7 +797,7 @@ Tips:
- Test using `with-signal`: (with-signal (trace! ...)).
- Supports the same options [2] as other signals [1].
- - Identical to `spy!`, but emphasizing form + id rather than form + level.
+ - Identical to `spy!`, but emphasizes form + id rather than form + level.
- Useful for debugging/monitoring forms, and tracing (nested) execution flow.
- Execution of `form` arg may create additional (nested) signals.
diff --git a/taoensso.telemere.open-telemetry.html b/taoensso.telemere.open-telemetry.html
new file mode 100644
index 0000000..716588e
--- /dev/null
+++ b/taoensso.telemere.open-telemetry.html
@@ -0,0 +1,14 @@
+
+taoensso.telemere.open-telemetry documentation
Experimental, subject to change!! Feedback very welcome!
+Returns `io.opentelemetry.api.logs.LoggerProvider` via:
+ `AutoConfiguredOpenTelemetrySdk` when possible, or
+ `GlobalOpenTelemetry` otherwise.
Experimental, subject to change!! Feedback very welcome!
+
+Returns a (fn handler [signal]) that:
+ - Takes a Telemere signal.
+ - Emits signal content to the `io.opentelemetry.api.logs.Logger`
+ returned by given `io.opentelemetry.api.logs.LoggerProvider`.
IAttr+
protocol
clj
\ No newline at end of file
diff --git a/taoensso.telemere.streams.html b/taoensso.telemere.streams.html
new file mode 100644
index 0000000..a620364
--- /dev/null
+++ b/taoensso.telemere.streams.html
@@ -0,0 +1,22 @@
+
+taoensso.telemere.streams documentation
Experimental, subject to change without notice!
+Resets `System/out` and `System/err` to their original value (prior to any
+`streams->telemere!` call).
Experimental, subject to change without notice!
+
+When given `out`, sets JVM's `System/out` to flush to Telemere signals with those opts.
+When given `err`, sets JVM's `System/err` to flush to Telemere signals with those opts.
+
+Note that setting `System/out` won't necessarily affect Clojure's `*out*`,
+and setting `System/err` won't necessarily affect Clojure's `*err*`.
+
+See also:
+ `with-out->telemere`,
+ `with-err->telemere`,
+ `with-streams->telemere`.
Executes form with `*out*` and/or `*err*` bound to flush to Telemere signals
+with given opts.
\ No newline at end of file
diff --git a/taoensso.telemere.timbre.cljs.html b/taoensso.telemere.timbre.cljs.html
index 723c5f0..c97a896 100644
--- a/taoensso.telemere.timbre.cljs.html
+++ b/taoensso.telemere.timbre.cljs.html
@@ -1,6 +1,6 @@
-taoensso.telemere.timbre documentation
\ No newline at end of file
diff --git a/taoensso.telemere.timbre.html b/taoensso.telemere.timbre.html
index 90dfd0a..f638cd8 100644
--- a/taoensso.telemere.timbre.html
+++ b/taoensso.telemere.timbre.html
@@ -1,6 +1,6 @@
-taoensso.telemere.timbre documentation
Configures `clojure.tools.logging` to use Telemere as its logging implementation.
+
+Called automatically if the following is true:
+ (get-env {:as :bool} :clojure.tools.logging/to-telemere)
+
+See `get-env` for details.
tools-logging->telemere?
clj
(tools-logging->telemere?)
Returns true iff `clojure.tools.logging` is configured to use Telemere
+as its logging implementation.
\ No newline at end of file
diff --git a/taoensso.telemere.utils.cljs.html b/taoensso.telemere.utils.cljs.html
index 55c3f0c..1f00fc1 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 given signal with possible `:error` replaced by
[{:keys [type msg data]} ...] cause chain.
diff --git a/taoensso.telemere.utils.html b/taoensso.telemere.utils.html
index 7a080fe..6ca2377 100644
--- a/taoensso.telemere.utils.html
+++ b/taoensso.telemere.utils.html
@@ -1,6 +1,6 @@
-taoensso.telemere.utils documentation