Commit graph

235 commits

Author SHA1 Message Date
Peter Taoussanis
5a8c407528 [new] Add :ctx+, :middleware+ signal options 2024-10-29 10:02:12 +01:00
Peter Taoussanis
c1e1c1e4cc [new] OpenTelemetry handler: try print map vals as EDN 2024-10-29 10:02:12 +01:00
Peter Taoussanis
5ef4f12c6e [new] [#28] OpenTelemetry handler: support custom signal attrs
Thanks to @benalbrecht for assistance on this feature!
2024-10-29 10:02:12 +01:00
Peter Taoussanis
19548d3fac [new] Simplify default OpenTelemetry providers code, expose SDK 2024-10-29 10:02:12 +01:00
Peter Taoussanis
5ac872566a [new] Add dispatch-signal! util 2024-10-29 10:02:12 +01:00
Peter Taoussanis
9965450f5b [new] writeable-file!: resolve sym links, etc. 2024-10-29 10:02:12 +01:00
Peter Taoussanis
d0ad99d528 [new] Extend IIFE-wrap to Clj
The perf hit is negligible, and we can always re-evaluate this choice again
later. In the meantime, let's err on the side of greatest compatibility.
2024-10-29 10:02:12 +01:00
Peter Taoussanis
f7a56631c5 [fix] signal-opts: allow map forms as intended 2024-10-29 10:02:12 +01:00
Peter Taoussanis
7f52cb1843 [fix] uncaught->error! wasn't working (@benalbrecht)
`__thread` handler arg was being masked by `__thread` in signal implementation,
Ref. https://clojurians.slack.com/archives/C06ALA6EEUA/p1727713025725089
2024-10-29 10:02:12 +01:00
Peter Taoussanis
ecf4824f6b [nop] Bump deps 2024-10-29 09:48:36 +01:00
Peter Taoussanis
980439c646 v1.0.0-SNAPSHOT 2024-09-25 09:21:05 +02:00
Peter Taoussanis
0a3e3e80c6 v1.0.0-beta25 (2024-09-25) 2024-09-25 09:14:48 +02:00
Peter Taoussanis
ce9864a57b v1.0.0-SNAPSHOT 2024-09-23 09:23:22 +02:00
Peter Taoussanis
262c6d4324 v1.0.0-beta24 (2024-09-23) 2024-09-23 09:17:49 +02:00
Peter Taoussanis
88f7a3c7d6 [fix] Don't count non-list run forms 2024-09-23 09:14:29 +02:00
Peter Taoussanis
69df7aa86d v1.0.0-SNAPSHOT 2024-09-22 12:30:14 +02:00
Peter Taoussanis
7e348465ac v1.0.0-beta23 (2024-09-22) 2024-09-22 12:20:14 +02:00
Peter Taoussanis
85772f7335 [new] Cap length of displayed run-form when tracing 2024-09-22 10:38:10 +02:00
Peter Taoussanis
c9e84e8b38 [new] Avoid duplicated trace bodies
Trade off a small performance hit with tracing to avoid duplication
of potentially large expansions, and to help further eliminate potential
issues when embedding within IOT-style macros (`core.async/go`, etc.)
2024-09-20 22:55:12 +02:00
Peter Taoussanis
cbab57be66 [fix] [#21] Work around issue with use in Cljs core.async/go bodies
Problem:
  (clojure.core.async/go (taoensso.telemere/log! "hello")) ; Compiles fine
  (cljs.core.async/go    (taoensso.telemere/log! "hello")) ; Compile fails

I could try to get to the bottom of exactly what's going on - but ultimately
IOC mechanisms like `go` are always going to be a bit fragile, especially for
heavily-optimized/unusual code.

In this case, the problem is thankfully only with Cljs - and Telemere's Cljs
performance isn't too critical - so I think we can afford to just bypass any
potential fiddling by the `go` macro by wrapping Cljs Telemere expansions in
an IIFE ((fn [] ...)).

Downside is the (small) added cost of a function construction and call.
Upside   is avoiding potential issues with core.async and other similar
IOC-style systems (Electric Clojure, etc.)
2024-09-20 22:55:12 +02:00
Peter Taoussanis
568906c96b [fix] [#20] Wrong :arglists meta on spy! 2024-09-20 22:55:12 +02:00
Peter Taoussanis
d9c3583631 [new] Add :rate-limit-by option to all signal creators
When present, will cause limits to be per [expansion, by-value]
2024-09-20 22:55:12 +02:00
Peter Taoussanis
f703630914 [mod] Update pr-signal-fn to use clean-signal-fn 2024-09-20 22:55:12 +02:00
Peter Taoussanis
be55f44a87 [new] Add clean-signal-fn util 2024-09-20 22:55:12 +02:00
Peter Taoussanis
d12b0b145b [new] Add signal-allowed? util
Useful for using Telemere's filtering features without generating
any signals, etc.
2024-09-20 22:55:12 +02:00
Peter Taoussanis
a9005e7f1c [mod] Rename taoensso.telemere.api -> taoensso.telemere.shell 2024-09-20 22:55:12 +02:00
Peter Taoussanis
965c2277fd [new] Allow compile-time config of uid kind 2024-09-20 22:55:12 +02:00
Peter Taoussanis
a09c628f23 [nop] Signal fields: revert to initial behaviour
Seems issue with "Electric Clojure" might not be on Telemere's side.
2024-09-20 22:55:12 +02:00
Peter Taoussanis
9b24b54215 [fix] Signal fields: define same fields regardless of platform
Attempted fix for possible issue with "Electric Clojure"
2024-09-20 22:55:12 +02:00
Peter Taoussanis
92a7aee530 [fix] Signal fields: define based on target (not macro) platform
Attempted fix for possible issue with "Electric Clojure"
2024-09-20 22:55:12 +02:00
Peter Taoussanis
f52a04b4dc [fix] [#18] Support {:uid :auto} for non-tracing signal creators 2024-09-20 22:55:12 +02:00
Peter Taoussanis
974df3e152 [doc] Drop suggested edn suffixes from env config 2024-09-20 22:55:12 +02:00
Peter Taoussanis
e4a0a41a1b [doc] Misc improvements 2024-09-20 22:55:12 +02:00
Peter Taoussanis
f9564b2fc5 [nop] Misc improvements 2024-09-20 09:37:28 +02:00
Peter Taoussanis
7e8f692b93 v1.0.0-SNAPSHOT 2024-08-28 18:43:36 +02:00
Peter Taoussanis
97f0eb5efd v1.0.0-beta22 (2024-08-28) 2024-08-28 18:35:25 +02:00
Peter Taoussanis
77ed27cfd1 [mod] Move dep: com.taoensso/slf4j-telemere -> com.taoensso/telemere-slf4j 2024-08-28 18:26:52 +02:00
Peter Taoussanis
ece51b2ef6 [new] Add experimental facade API for lib authors, etc. 2024-08-28 18:26:52 +02:00
Peter Taoussanis
0f09b797ed [fix] More robust mechanism for retaining nested macro callsite info 2024-08-28 16:54:57 +02:00
Peter Taoussanis
0e4942e99c [fix] :line unit tests 2024-08-28 16:54:55 +02:00
Peter Taoussanis
19cd1af3a4 [nop] Restructure repo 2024-08-28 16:53:31 +02:00
Peter Taoussanis
824ebc7802 [doc] Update docs and examples 2024-08-28 09:17:33 +02:00
Peter Taoussanis
96cc9e51f4 [nop] Misc housekeeping 2024-08-27 14:36:32 +02:00
Peter Taoussanis
3388103acf v1.0.0-SNAPSHOT 2024-08-26 22:14:56 +02:00
Peter Taoussanis
6032d2405e v1.0.0-beta21 (2024-08-26) 2024-08-26 13:19:43 +02:00
Peter Taoussanis
3068ccf8d7 [new] Simplify signal expansion 2024-08-26 13:13:33 +02:00
Peter Taoussanis
bbfe61106c [new] Add basic "full" bench numbers (to handled signals) 2024-08-26 13:13:33 +02:00
Peter Taoussanis
b4b06f324b [nop] Micro-optimize binding conveyance
Avoid repeatedly capturing the same callsite binding frame for each registered
handler. While the perf benefit of this change is minimal, the approach is also
conceptually cleaner.
2024-08-26 13:13:33 +02:00
Peter Taoussanis
8066776a80 [doc] Update docs and examples 2024-08-26 09:57:29 +02:00
Peter Taoussanis
54129e91a0 [nop] Misc housekeeping 2024-08-24 11:14:50 +02:00