Commit graph

79 commits

Author SHA1 Message Date
Peter Taoussanis
798e0fddc4 v1.2.1 (2025-12-16)
Some checks are pending
Clj tests / tests (17, ubuntu-latest) (push) Waiting to run
Clj tests / tests (19, ubuntu-latest) (push) Waiting to run
Clj tests / tests (21, ubuntu-latest) (push) Waiting to run
Cljs tests / tests (21, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, macOS-latest) (push) Waiting to run
Graal tests / tests (17, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, windows-latest) (push) Waiting to run
2025-12-16 10:16:51 +01:00
Peter Taoussanis
6030c472ae [fix] Timbre->Telemere appender: missing error regression
Recent 47af80319d (in Telemere v1.2.0)
accidentally removed errors from Timbre->Telemere signals.
2025-12-16 10:12:23 +01:00
Peter Taoussanis
6cc54527f2 v1.2.0 (2025-12-09)
Some checks are pending
Clj tests / tests (17, ubuntu-latest) (push) Waiting to run
Clj tests / tests (19, ubuntu-latest) (push) Waiting to run
Clj tests / tests (21, ubuntu-latest) (push) Waiting to run
Cljs tests / tests (21, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, macOS-latest) (push) Waiting to run
Graal tests / tests (17, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, windows-latest) (push) Waiting to run
2025-12-09 17:55:48 +01:00
Peter Taoussanis
56e35f3f58 [nop] Bump deps
Some checks are pending
Clj tests / tests (17, ubuntu-latest) (push) Waiting to run
Clj tests / tests (19, ubuntu-latest) (push) Waiting to run
Clj tests / tests (21, ubuntu-latest) (push) Waiting to run
Cljs tests / tests (21, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, macOS-latest) (push) Waiting to run
Graal tests / tests (17, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, windows-latest) (push) Waiting to run
2025-12-09 13:10:11 +01:00
Peter Taoussanis
a6fc4adf6a [new] OpenTelemetry handler: support spans created outside Telemere
Some checks failed
Clj tests / tests (17, ubuntu-latest) (push) Has been cancelled
Clj tests / tests (19, ubuntu-latest) (push) Has been cancelled
Clj tests / tests (21, ubuntu-latest) (push) Has been cancelled
Cljs tests / tests (21, ubuntu-latest) (push) Has been cancelled
Graal tests / tests (17, macOS-latest) (push) Has been cancelled
Graal tests / tests (17, ubuntu-latest) (push) Has been cancelled
Graal tests / tests (17, windows-latest) (push) Has been cancelled
BEFORE this commit:

  Telemere captured OpenTelemetry context only when generating
  tracing signals (`trace!`, `spy!`, etc.).

AFTER this commit:

  Telemere always captures OpenTelemetry context when present.

Motivation for the change:

  Telemere users may have spans automatically created by the
  OpenTelemetry Java Agent, or manually created by other libs
  like clj-otel.

  By always capturing the OpenTelemetry context when present,
  this lets even non-tracing Telemere signals (like `log!`)
  include the relevant trace and span IDs for external tooling.

Thanks to @devurandom for suggesting this, and for helping
debug/identify the necessary changes 🙏
2025-12-05 08:03:41 +01:00
Peter Taoussanis
6155713fde [fix] OpenTelemetry handler: add missing line info to output
Previous code was a vestigial leftover from when signals
had {:line <num> :column <num> ...} rather than
{:coords [<line-num> <column-num>] ...}
2025-12-04 21:13:41 +01:00
Peter Taoussanis
a883df3c41 [new] [#68] Add config to skip host and/or thread info 2025-12-04 21:13:41 +01:00
Peter Taoussanis
e6ce33dd4e [mod] SLF4J->Telemere backend: move noisy stuff out of signal data
This is a BREAKING change for the small minority of users that:

  1. Are using the `taoensso.telemere.slf4j` backend, AND
  2. Are using the low-level `:slf4j/args` or `:slf4j/marker-names`
     values in signal `:data`

BEFORE this commit:

  SLF4J signals contain:
  {:data {:slf4j/kvs {...},
          :slf4j/args [...],
          :slf4j/marker-names #{...}},
   ...}.

AFTER this commit:

  SLF4J signals contain:
  {:data {:slf4j/kvs {...}},
   :kvs  {:slf4j/args <Object[]>,
          :slf4j/markers #{...}},
   ...}

  So:
    - [:data :slf4j/marker-names] has moved to [:kvs :slf4j/markers].
    - [:data :slf4j/args]         has moved to [:kvs :slf4j/args],
      and is now an Object[] rather than vector.

Motivation for the change:

  The new behaviour is a more sensible default.

  Basically: anything in `:data` is included by default in output.
  But :slf4j/args are generally anyway already in the signal's formatted
  message, so this ends up just creating duplicate output.

  Likewise markers are generally used more for filtering/xfns than for
  output labelling, so excluding them from default output is sensible.
2025-12-04 21:13:37 +01:00
Peter Taoussanis
cc680b06f5 [mod] Timbre shim API: move noisy :vargs out of signal data
This is a BREAKING change but only relevant for a TINY minority
of users that:

  1. Are using the `taoensso.telemere.timbre` API shim, AND
  2. Are using the low-level `:vargs` value in signal `:data`

BEFORE this commit:

  The taoensso.telemere.timbre shim API produces signals with
  {:data {:vargs [...]}, ...} with `:vargs` a vector of raw args
  provided by Timbre.

AFTER this commit:

  The taoensso.telemere.timbre shim API produces signals with
  {:kvs {:timbre/vargs [...]}, ...} with `:vargs` a vector of raw
  args provided by Timbre.

  I.e. [:data :vargs] has been moved to [:kvs :timbre/vargs].

Motivation for the change:

  The new behaviour is a more sensible default.

  Basically: anything in `:data` is included by default in output.
  But vargs are generally anyway already in the signal's formatted
  message, so this ends up just creating duplicate output.
2025-12-04 11:24:55 +01:00
Peter Taoussanis
47af80319d [mod] [fix] Timbre->Telemere appender: de-duplicate output formatting
BEFORE this commit:

  The Timbre->Telemere appender produced duplicate preamble output
  (timestamp, namespace, etc.). Both Timbre AND Telemere were adding
  preamble info.

AFTER this commit:

  Now ONLY Telemere adds preamble info.
  Timbre's `:output-fn` is ignored.
2025-12-04 11:22:52 +01:00
Peter Taoussanis
b56e1c4529 [mod] [fix] Timbre->Telemere appender: fix callsite coords
There was unfortunately a bug in the Timbre->Telemere appender that
was producing signals with {:line <num> :column <num> ...} keys instead
of the expected {:coords [<line-num> <column-num>] ...} key.

This commit fixes the mistake, which should help fix issues with
any downstream middleware or handlers that expect a `:coords` key.

Unfortunately this fix could break a small minority of users that
have come to expect `:line` and `:column` keys on their Timbre signals
(none of the built-in middleware or handlers do).

Apologies for the trouble!
2025-12-04 11:22:52 +01:00
Peter Taoussanis
8a3ae14f45 [fix] Correctly handle nil :run opt
Before commit: {:run nil} didn't    register  as a tracing signal
After  commit: {:run nil} correctly registers as a tracing signal with `nil` form

nil forms aren't typically useful or used, but can come up by accident
so it's important to handle these correctly.

The `trace!` docstring also promises that the return value will always be
equal to the given input. This didn't hold before.
2025-12-04 11:22:52 +01:00
Peter Taoussanis
917b1b408e [doc] Clarify that signal content is lazy 2025-12-04 11:22:52 +01:00
Peter Taoussanis
125e006753 [nop] Housekeeping 2025-12-04 11:22:52 +01:00
Peter Taoussanis
c6a71652d7 v1.2.0-SNAPSHOT 2025-12-04 11:22:52 +01:00
Peter Taoussanis
4cc4f45e7c v1.1.0 (2025-08-22) 2025-08-22 10:35:05 +02:00
Peter Taoussanis
eb28d365a8 [fix] truss/ex-info format 2025-08-22 10:25:47 +02:00
Peter Taoussanis
d9ad1ba379 [nop] Bump deps 2025-08-22 10:25:47 +02:00
Peter Taoussanis
b2a8b66cc0 [fix] :trace level JS console logging
Some checks are pending
Clj tests / tests (21, ubuntu-latest) (push) Waiting to run
Clj tests / tests (17, ubuntu-latest) (push) Waiting to run
Clj tests / tests (19, ubuntu-latest) (push) Waiting to run
Cljs tests / tests (21, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, macOS-latest) (push) Waiting to run
Graal tests / tests (17, ubuntu-latest) (push) Waiting to run
Graal tests / tests (17, windows-latest) (push) Waiting to run
`js/console.trace` was being misused here and is actually intended
for stacktrace printing, NOT trace-level output.
2025-08-21 12:40:39 +02:00
Peter Taoussanis
1bcd46adf3 [doc] Misc housekeeping
Some checks failed
Clj tests / tests (17, ubuntu-latest) (push) Has been cancelled
Clj tests / tests (19, ubuntu-latest) (push) Has been cancelled
Clj tests / tests (21, ubuntu-latest) (push) Has been cancelled
Cljs tests / tests (21, ubuntu-latest) (push) Has been cancelled
Graal tests / tests (17, macOS-latest) (push) Has been cancelled
Graal tests / tests (17, ubuntu-latest) (push) Has been cancelled
Graal tests / tests (17, windows-latest) (push) Has been cancelled
2025-06-23 13:10:02 +02:00
Peter Taoussanis
b7b3a25a82 [doc] Updates for Trove, simplify examples 2025-06-20 10:53:06 +02:00
Peter Taoussanis
dcfeba5b91 [new] Add :kvs signal option 2025-06-18 23:17:45 +02:00
Peter Taoussanis
269c58d8fe [fix] Clj-kondo warnings for with-signal/s
Some checks failed
Graal tests / test (17, macOS-latest) (push) Has been cancelled
Graal tests / test (17, ubuntu-latest) (push) Has been cancelled
Graal tests / test (17, windows-latest) (push) Has been cancelled
Main tests / tests (17, ubuntu-latest) (push) Has been cancelled
Main tests / tests (19, ubuntu-latest) (push) Has been cancelled
Main tests / tests (21, ubuntu-latest) (push) Has been cancelled
2025-06-09 08:40:15 +02:00
Peter Taoussanis
7603ae2fcf [mod] Tweak format-error spacing
Some checks failed
Graal tests / test (17, macOS-latest) (push) Has been cancelled
Graal tests / test (17, ubuntu-latest) (push) Has been cancelled
Graal tests / test (17, windows-latest) (push) Has been cancelled
Main tests / tests (17, ubuntu-latest) (push) Has been cancelled
Main tests / tests (19, ubuntu-latest) (push) Has been cancelled
Main tests / tests (21, ubuntu-latest) (push) Has been cancelled
2025-05-30 16:28:47 +02:00
Peter Taoussanis
6fb18bd3b9 v1.0.1 (2025-05-27)
Some checks failed
Graal tests / test (17, macOS-latest) (push) Has been cancelled
Graal tests / test (17, ubuntu-latest) (push) Has been cancelled
Graal tests / test (17, windows-latest) (push) Has been cancelled
Main tests / tests (17, ubuntu-latest) (push) Has been cancelled
Main tests / tests (19, ubuntu-latest) (push) Has been cancelled
Main tests / tests (21, ubuntu-latest) (push) Has been cancelled
2025-05-27 09:03:22 +02:00
Peter Taoussanis
d6264afe7c [nop] Bump deps 2025-05-27 08:59:58 +02:00
Peter Taoussanis
f08b60bce4 [fix] [#65] Fix broken callsite :limit option 2025-05-27 08:59:58 +02:00
Peter Taoussanis
3746de8039 [fix] Fix bad signal-content-fn parent formatting 2025-05-27 08:59:58 +02:00
Peter Taoussanis
1bdb667b6c [doc] Add extra docs re: debugging filtering 2025-05-27 08:59:58 +02:00
Mark Sto
2e0a2938b7 [doc] [#64] Hide some unimportant vars from API docs (@marksto)
Motivation:

  These vars aren't used often, are are supplementary rather than
  a key part of Telemere's API.

  Having them listed in the API docs adds to the noise there and makes
  the API seem more overwhelming than necessary.
2025-05-27 08:59:19 +02:00
Peter Taoussanis
475e5ba6c2 v1.0.0 (2025-04-30) 2025-04-30 16:34:22 +02:00
Peter Taoussanis
51e8a1062f [fix] [#61] OpenTelemetry handler not cancelling timer on shutdown 2025-04-30 14:50:40 +02:00
Peter Taoussanis
31a4fc26d2 [new] Support :host, :thread override 2025-04-30 14:50:40 +02:00
Peter Taoussanis
94fec57c9e [doc] Use consistent style for docstring opts 2025-04-30 14:50:40 +02:00
Peter Taoussanis
345b125f6b [new] Add callsite info to compile-time errors 2025-04-30 14:50:40 +02:00
Peter Taoussanis
248e91f982 [nop] Misc improvements 2025-04-30 14:50:40 +02:00
Peter Taoussanis
32e8909e42 [nop] Move docstring resources 2025-04-30 14:50:40 +02:00
Peter Taoussanis
e8f02ac13e [nop] Use pr-edn* for Signal strings 2025-04-30 14:50:40 +02:00
Peter Taoussanis
254cd6471b [fix] [#32] Fix clj-kondo declaration typo (@icp1994) 2025-04-30 14:50:40 +02:00
Peter Taoussanis
c2e7d0c2d6 [nop] Bump deps 2025-04-30 14:50:40 +02:00
Peter Taoussanis
0608d43d44 v1.0.0-RC5 (2025-03-10) 2025-03-10 13:38:49 +01:00
Peter Taoussanis
f37f54e1da [mod] Rename "rate-limit" -> "limit"
Users caught by this change should receive a clear compile-time error.

Apologies for the nuissance!! This change is part of a final review
of names before the release of v1 final.
2025-03-10 13:02:57 +01:00
Peter Taoussanis
1f4b49a21a [mod] Rename "sample-rate" -> "sample"
Users caught by this change should receive a clear compile-time error.

Apologies for the nuissance!! This change is part of a final review
of names before the release of v1 final.
2025-03-10 13:02:57 +01:00
Peter Taoussanis
7cccf672f5 [mod] Rename "middleware" -> "transform" (xfn)
Users caught by this change should receive a clear compile-time error.

Apologies for the nuissance!! This change is part of a final review
of names before the release of v1 final.

Motivations:

  - "xfn" is a lot shorter than "middleware", making it more
    convenient to use at signal calls, compare:

    (log! {:middleware my-fn} "msg")
    (log! {:xfn my-fn} "msg"}

  - "middleware" was originally chosen to match Timbre's terminology,
    but actually carries some misleading connotations that in hindsight
    are probably better avoided while we still have the chance to change
    this.
2025-03-10 13:02:57 +01:00
Peter Taoussanis
c78eb07385 [mod] [#56] utils/clean-signal-fn exclude :schema by default
It's probably more common for users to NOT want the `:schema` key
to be included, so let's make that the default.
2025-03-10 13:02:57 +01:00
Peter Taoussanis
82f4c31651 [new] [#57] File handling: make file stream more robust
1. Check `.canWrite` rather than just `.exists`
2. Recreate file and/or dir/s if needed any time
   file stream is recreated.
2025-03-10 13:02:57 +01:00
Peter Taoussanis
af45ffc396 [fix] [#57] File handling: use nio API to create missing parent dirs
Skimming the docs, it seems that the nio API might be better able to
create dirs for edge cases like symbolic links, etc.?
2025-03-10 13:02:57 +01:00
Peter Taoussanis
c60f33edeb [fix] [#32] Fix clj-kondo warnings
Note also related Encore-side PR:
https://github.com/taoensso/encore/pull/84
2025-03-10 13:02:57 +01:00
Peter Taoussanis
bb3d351be8 [nop] Bump deps 2025-03-10 13:02:57 +01:00
Peter Taoussanis
2510c5dbb9 v1.0.0-SNAPSHOT 2025-03-10 13:02:57 +01:00