mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-17 01:51:10 +00:00
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.
2.9 KiB
2.9 KiB
Telemere's key function is to help:
- Capture information in your running Clojure/Script programs, and
- Facilitate processing of that information to support insight.
Its basic tools:
- Signal creators to conditionally create signal maps at points in your code.
- Signal handlers to conditionally handle those signal maps (analyse, write to console/file/queue/db, etc.).
So you call a signal creator to (conditionally) create a signal (map) which is then dispatched to registered signal handlers for (conditional) handling.
This flow is described by help:signal-flow, and is visualized below:
A/sync queuesemantics are configured per handler when callingadd-handler!. Default semantics are: async with a dropping buffer, and 1 handler thread.- The shared signal middleware cache is super useful when doing signal transformations that are expensive and/or involve side effects (like syncing with another service/db to get a unique tx id, etc.).
For more info see:
| Var | Help with |
|---|---|
help:signal-creators |
List of signal creators |
help:signal-options |
Options for signal creators |
help:signal-content |
Signal map content |
help:signal-flow |
Ordered flow from signal creation to handling |
help:signal-filters |
API for configuring signal filters |
help:signal-handlers |
API for configuring signal handlers |
help:signal-formatters |
Signal formatters for use by handlers |