Commit graph

39 commits

Author SHA1 Message Date
Peter Taoussanis
839143167b [mod] Simplify middleware - don't auto compose
Previously:

  It was possible to provide a vector of middleware fns when creating
  signals or adding handlers, e.g.:

    (event! ::ev-id1 {:middleware [fn1 fn2 ...]}),
    (add-handler! ::handler-id1 <handler-fn> {:middleware [fn1 fn2 ...]})

After this commit:

  Middleware is always expected to be a single fn, or nil.
  A `comp-middleware` util has been added to make it easy to compose multiple
  middleware fns into one.

Motivation:

  The previous (auto-composition) behaviour was nice when adding handlers,
  but incurred a (small but non-trivial) runtime cost when creating signals.

  The actual benefit (convenience) of auto-composition is very small, so
  I've decided to just remove this feature and add the `comp-middleware` util.

  Note that I ruled out the option of doing auto-comp only when adding handlers
  since that've meant an inconsistency and so complexity for little benefit.
2024-05-05 13:58:16 +02:00
Peter Taoussanis
63f488082b [nop] Housekeeping 2024-05-05 13:58:16 +02:00
Peter Taoussanis
1d4cdb8a3c [nop] Misc housekeeping 2024-04-29 12:15:19 +02:00
Peter Taoussanis
e222297a2b [fix] SLF4J broken timestamps, add tests
Thanks to @AdamFrey for reporting this issue!
Ref. <https://clojurians.slack.com/archives/C06ALA6EEUA/p1713900525964169?thread_ts=1713805333.272469&cid=C06ALA6EEUA>
2024-04-24 13:22:31 +02:00
Peter Taoussanis
d04f6d8e5b [nop] Misc housekeeping 2024-04-24 13:22:31 +02:00
Peter Taoussanis
6d545dfcef [mod] Move (simplify) OpenTelemetry ns
Now that there's need for users to interact with the OpenTelemetry ns directly,
a shorter ns name is preferable.
2024-04-24 13:22:31 +02:00
Peter Taoussanis
ffea1a30ed [fix] Fix broken AOT support, add AOT tests
Thanks to @AdamFrey for reporting this issue!
Ref. <https://clojurians.slack.com/archives/C06ALA6EEUA/p1713805333272469>

Previously:

  Attempting to run AOT'd code using Telemere would result in errors like:
  "Attempting to call unbound fn: #'taoensso.telemere.handlers.open-telemetry/handler:open-telemetry-logger"

The approach I was using of conditionally requiring namespaces and then aliasing vars seems to be inherently
fragile under AOT, and was leading to the remote source var being unbound.

With this commit I've now switched to a simpler approach - where we conditionally require namespaces *without*
the need for any aliasing.
2024-04-24 13:22:30 +02:00
Peter Taoussanis
5690bfe11a [mod] Rename "interop" -> "intake" 2024-04-17 15:51:24 +02:00
Peter Taoussanis
37b400ff18 [new] Prevent common signal opts errors 2024-04-12 17:50:06 +02:00
Peter Taoussanis
3d66cad4e6 [mod] Change default min-level: nil->:info 2024-04-12 17:49:55 +02:00
Peter Taoussanis
5f98e7304f [mod] Rename signal field: :extra-kvs -> :kvs 2024-04-12 16:54:13 +02:00
Peter Taoussanis
be4644220c [new] Add basic OpenTelemetry handler 2024-04-10 18:40:33 +02:00
Peter Taoussanis
2abb9de61b [nop] Collect handler namespaces 2024-04-10 18:40:33 +02:00
Peter Taoussanis
99402b07cd [mod] Rename timbre-shim ns -> timbre 2024-04-10 18:40:33 +02:00
Peter Taoussanis
0c3f685734 [nop] Misc housekeeping 2024-04-10 18:40:33 +02:00
Peter Taoussanis
323ba0e99c [nop] Restructure handlers 2024-04-05 18:17:07 +02:00
Peter Taoussanis
99b2e0c0cb [mod] Remove Clj enc/pr-json 2024-04-05 17:51:14 +02:00
Peter Taoussanis
21a02f286b [new] Add archiving file handler 2024-04-05 17:51:14 +02:00
Peter Taoussanis
97ddc93775 [new] Add Timbre shim ns 2024-04-05 17:51:14 +02:00
Peter Taoussanis
e0c3e4ba23 [new] Wrap :run form errors to include signal data 2024-04-05 17:51:14 +02:00
Peter Taoussanis
c141aa2418 [nop] Refactor test utils 2024-04-05 17:51:14 +02:00
Peter Taoussanis
5c85860b3e [new] Extend trace!, spy! for easier catching 2024-04-05 17:51:14 +02:00
Peter Taoussanis
1f14712950 [new] Add first handlers 2024-03-28 16:24:08 +01:00
Peter Taoussanis
0f0e049993 [mod] Rename signal fields: :instant -> :inst, etc. 2024-03-28 16:24:08 +01:00
Peter Taoussanis
45f924a1f3 [mod] Only incl. :end-instant in signals with run forms 2024-03-28 16:24:08 +01:00
Peter Taoussanis
2989649679 [new] Add Signal printing methods 2024-03-28 16:24:08 +01:00
Peter Taoussanis
50378146c0 [new] Add explicit :extra-kvs to signals
I.e. groups together all user-level kvs for convenience.
2024-03-28 16:24:08 +01:00
Peter Taoussanis
d13e4da5b9 [mod] Rename signal field: :run-value -> :run-val 2024-03-28 16:24:08 +01:00
Peter Taoussanis
25ed34f022 [mod] Rename signal field: :runtime-nsecs -> :run-nsecs 2024-03-28 16:24:08 +01:00
Peter Taoussanis
e513fa6f76 [nop] Update project template 2024-03-28 16:22:28 +01:00
Peter Taoussanis
0222bf4ee0 [nop] Misc housekeeping 2024-03-14 10:23:23 +01:00
Peter Taoussanis
5a0d9d8241 [new] Misc API polish, first signal docstrings 2024-03-13 13:01:00 +01:00
Peter Taoussanis
ef79a57e48 [new] Misc API polish, add docstrings 2024-03-13 12:11:06 +01:00
Peter Taoussanis
1440a764c9 [mod] Drop redundant 'filter' alias for 'when' fn/form 2024-03-13 12:11:06 +01:00
Peter Taoussanis
ab00cb4f64 [new] Add (conditional) :do support to signals 2024-03-13 12:11:06 +01:00
Peter Taoussanis
722c6abb67 [new] Refactor interop checks, make extensible 2024-03-13 12:11:06 +01:00
Peter Taoussanis
450798832c [nop] Misc housekeeping 2024-03-13 12:11:06 +01:00
Peter Taoussanis
824a057a99 [new] Add streams interop, handler binding conveyance, etc. 2024-03-11 11:36:26 +01:00
Peter Taoussanis
dca61ba582 [new] Add initial code, content 2024-03-08 10:35:10 +01:00