mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-16 17:41:12 +00:00
[mod] OpenTelemetry handler: rename (generalize)
Handler now does more than just logging.
This commit is contained in:
parent
a8e92303fa
commit
064ef32377
6 changed files with 14 additions and 9 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) | - |
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
<https://www.taoensso.com/telemere> 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)))
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
||||
|
|
|
|||
|
|
@ -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) | - |
|
||||
|
|
|
|||
Loading…
Reference in a new issue