diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e81020..4224765 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,7 +37,7 @@ Earlier: * \[mod] [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) now takes only a **single opts map** (beta 10) * \[mod] [User-level kvs](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#help:signal-options) are **no longer included by default** in handler output. `:incl-kvs?` option has been added to [`format-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#format-signal-fn) and [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) (beta 7) * \[mod] Middleware must now be a **single fn**, use [`comp-middleware`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#comp-middleware) to create one fn from many (beta 7) -* \[mod] [OpenTelemetry handler](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry-logger) is **no longer auto added** (beta 1) +* \[mod] [OpenTelemetry handler](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry) is **no longer auto added** (beta 1) * \[mod] Various API improvements to [included handlers](https://github.com/taoensso/telemere/wiki/4-Handlers#included-handlers) and [utils](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils) ## Recent additions diff --git a/README.md b/README.md index 598a9ef..c90fd71 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ Detailed help is available without leaving your IDE: | [Graylog](https://graylog.org/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Jaeger](https://www.jaegertracing.io/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Logstash](https://www.elastic.co/logstash) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | -| [OpenTelemetry](https://opentelemetry.io/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry-logger) | [👍](https://github.com/taoensso/roadmap/issues/12) | +| [OpenTelemetry](https://opentelemetry.io/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry) | [👍](https://github.com/taoensso/roadmap/issues/12) | | [Redis](https://redis.io/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | SQL | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Slack](https://slack.com/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.slack#handler:slack) | - | diff --git a/src/taoensso/telemere/open_telemetry.clj b/src/taoensso/telemere/open_telemetry.clj index 1d1145f..691d4f1 100644 --- a/src/taoensso/telemere/open_telemetry.clj +++ b/src/taoensso/telemere/open_telemetry.clj @@ -449,7 +449,7 @@ {:level :info :data {:ns/kw1 :v1 :ns/kw2 :v2} :otel/attrs {:longs [1 1 2 3] :strs ["a" "b" "c"]}}))) -(defn handler:open-telemetry-logger +(defn handler:open-telemetry "Highly experimental, possibly buggy, and subject to change!! Feedback and bug reports very welcome! Please ping me (Peter) at: or @@ -477,7 +477,7 @@ ;; - Sampling means that root/parent/child signals may never be handled ;; - `:otel/attrs`, `:otel/context` currently undocumented - ([] (handler:open-telemetry-logger nil)) + ([] (handler:open-telemetry nil)) ([{:keys [logger-provider tracer-provider max-span-msecs] :or {logger-provider :default @@ -591,7 +591,7 @@ (loop [] (when-not (empty? (end-buffer2_)) (recur))) ; Block to drain `end2` (.cancel t3s) (.cancel t2m) (.cancel tmax))))] - (fn a-handler:open-telemetry-logger + (fn a-handler:open-telemetry ([ ] (stop-tracing!)) ([signal] (let [?context @@ -632,10 +632,15 @@ ;; Ready for `LogRecordExporter` (.emit lrb))))))))) +(enc/deprecated + (def ^:no-doc ^:deprecated handler:open-telemetry-logger + "Prefer `handler:open-telemetry`." + handler:open-telemetry)) + (comment (do (require '[taoensso.telemere :as t]) - (def h1 (handler:open-telemetry-logger)) + (def h1 (handler:open-telemetry)) (let [[_ [s1 s2]] (t/with-signals (t/trace! ::id1 (t/trace! ::id2 "form2")))] (def s1 s1) (def s2 s2))) diff --git a/test/taoensso/telemere_tests.cljc b/test/taoensso/telemere_tests.cljc index 7472f6e..05ada34 100644 --- a/test/taoensso/telemere_tests.cljc +++ b/test/taoensso/telemere_tests.cljc @@ -934,7 +934,7 @@ [#?(:default (is (fn? (tel/handler:console)))) #?(:cljs (is (fn? (tel/handler:console-raw)))) #?(:clj (is (fn? (tel/handler:file)))) - #?(:clj (is (fn? (otel/handler:open-telemetry-logger))))]) + #?(:clj (is (fn? (otel/handler:open-telemetry))))]) (comment (def attrs-map otel/signal->attrs-map)) diff --git a/wiki/3-Config.md b/wiki/3-Config.md index 5dbaf14..ce3112e 100644 --- a/wiki/3-Config.md +++ b/wiki/3-Config.md @@ -96,7 +96,7 @@ To do this: 1. Ensure that you have the [OpenTelemetry Java](https://github.com/open-telemetry/opentelemetry-java) dependency. 2. Ensure that the relevant exporters are [appropriately configured](https://opentelemetry.io/docs/languages/java/configuration/) (this is the trickiest part, but not at all specific to Telemere). -3. Create a Telemere signal handler using [`handler:open-telemetry-logger`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry-logger), and register it using [`add-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#add-handler!). +3. Create a Telemere signal handler using [`handler:open-telemetry`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry), and register it using [`add-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#add-handler!). Aside from configuring the exporters (2), Telemere's OpenTelemetry interop **does not require** any use of or familiarity with the OpenTelemetry Java API or concepts. Just use Telemere as you normally would, and the handler (3) will automatically emit detailed log and trace data to your configured exporters (2). diff --git a/wiki/4-Handlers.md b/wiki/4-Handlers.md index 62bcffd..d7497ba 100644 --- a/wiki/4-Handlers.md +++ b/wiki/4-Handlers.md @@ -20,7 +20,7 @@ You can also easily [write your own handlers](#writing-handlers) for any output | [Graylog](https://graylog.org/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Jaeger](https://www.jaegertracing.io/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Logstash](https://www.elastic.co/logstash) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | -| [OpenTelemetry](https://opentelemetry.io/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry-logger) | [👍](https://github.com/taoensso/roadmap/issues/12) | +| [OpenTelemetry](https://opentelemetry.io/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry) | [👍](https://github.com/taoensso/roadmap/issues/12) | | [Redis](https://redis.io/) | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | SQL | [👍](https://github.com/taoensso/roadmap/issues/12) | - | | [Slack](https://slack.com/) | [✅](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.slack#handler:slack) | - |