mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-17 01:51:10 +00:00
[new] Simplify default OpenTelemetry providers code, expose SDK
This commit is contained in:
parent
5ac872566a
commit
19548d3fac
2 changed files with 29 additions and 28 deletions
|
|
@ -141,20 +141,22 @@
|
||||||
Env variable: `TAOENSSO_TELEMERE_otel-tracing`
|
Env variable: `TAOENSSO_TELEMERE_otel-tracing`
|
||||||
Classpath resource: `taoensso.telemere.otel-tracing`
|
Classpath resource: `taoensso.telemere.otel-tracing`
|
||||||
|
|
||||||
See also: `otel-get-default-providers`, `*otel-tracer*`,
|
See also: `otel-default-providers_`, `*otel-tracer*`,
|
||||||
`taoensso.telemere.open-telemere/handler:open-telemetry`.
|
`taoensso.telemere.open-telemere/handler:open-telemetry`.
|
||||||
|
|
||||||
[1] Ref. <https://github.com/open-telemetry/opentelemetry-java>"
|
[1] Ref. <https://github.com/open-telemetry/opentelemetry-java>"
|
||||||
impl/enabled:otel-tracing?))
|
impl/enabled:otel-tracing?))
|
||||||
|
|
||||||
#?(:clj
|
#?(:clj
|
||||||
(defn otel-get-default-providers
|
(def otel-default-providers_
|
||||||
"Experimental, subject to change. Feedback welcome!
|
"Experimental, subject to change. Feedback welcome!
|
||||||
|
|
||||||
When OpenTelemetry Java API [1] is present, returns map with keys:
|
When OpenTelemetry Java API [1] is present, value will be a delayed map
|
||||||
|
with keys:
|
||||||
:logger-provider - default `io.opentelemetry.api.logs.LoggerProvider`
|
:logger-provider - default `io.opentelemetry.api.logs.LoggerProvider`
|
||||||
:tracer-provider - default `io.opentelemetry.api.trace.TracerProvider`
|
:tracer-provider - default `io.opentelemetry.api.trace.TracerProvider`
|
||||||
:via - ∈ #{:sdk-extension-autoconfigure :global}
|
:via - ∈ #{:sdk-extension-autoconfigure :global}
|
||||||
|
:auto-configured-sdk - `io.opentelemetry.sdk.OpenTelemetrySdk` or nil
|
||||||
|
|
||||||
Uses `AutoConfiguredOpenTelemetrySdk` when possible, or
|
Uses `AutoConfiguredOpenTelemetrySdk` when possible, or
|
||||||
`GlobalOpenTelemetry` otherwise.
|
`GlobalOpenTelemetry` otherwise.
|
||||||
|
|
@ -162,8 +164,8 @@
|
||||||
See the relevant OpenTelemetry Java docs for details.
|
See the relevant OpenTelemetry Java docs for details.
|
||||||
|
|
||||||
[1] Ref. <https://github.com/open-telemetry/opentelemetry-java>"
|
[1] Ref. <https://github.com/open-telemetry/opentelemetry-java>"
|
||||||
[]
|
|
||||||
(enc/compile-when impl/present:otel?
|
(enc/compile-when impl/present:otel?
|
||||||
|
(delay
|
||||||
(or
|
(or
|
||||||
;; Via SDK autoconfiguration extension (when available)
|
;; Via SDK autoconfiguration extension (when available)
|
||||||
(enc/compile-when
|
(enc/compile-when
|
||||||
|
|
@ -173,23 +175,22 @@
|
||||||
sdk (.getOpenTelemetrySdk (.build builder))]
|
sdk (.getOpenTelemetrySdk (.build builder))]
|
||||||
{:logger-provider (.getLogsBridge sdk)
|
{:logger-provider (.getLogsBridge sdk)
|
||||||
:tracer-provider (.getTracerProvider sdk)
|
:tracer-provider (.getTracerProvider sdk)
|
||||||
:via :sdk-extension-autoconfigure})))
|
:via :sdk-extension-autoconfigure
|
||||||
|
:auto-configured-sdk sdk})))
|
||||||
|
|
||||||
;; Via Global (generally not recommended)
|
;; Via Global (generally not recommended)
|
||||||
(let [g (io.opentelemetry.api.GlobalOpenTelemetry/get)]
|
(let [g (io.opentelemetry.api.GlobalOpenTelemetry/get)]
|
||||||
{:logger-provider (.getLogsBridge g)
|
{:logger-provider (.getLogsBridge g)
|
||||||
:tracer-provider (.getTracerProvider g)
|
:tracer-provider (.getTracerProvider g)
|
||||||
:via :global})))))
|
:via :global}))))))
|
||||||
|
|
||||||
#?(:clj
|
|
||||||
(def ^:no-doc otel-default-providers_
|
|
||||||
(when impl/present:otel? (delay (otel-get-default-providers)))))
|
|
||||||
|
|
||||||
#?(:clj
|
#?(:clj
|
||||||
(def ^:dynamic ^:no-doc *otel-tracer*
|
(def ^:dynamic ^:no-doc *otel-tracer*
|
||||||
"OpenTelemetry `Tracer` to use for Telemere's tracing signal creators
|
"OpenTelemetry `Tracer` to use for Telemere's tracing signal creators
|
||||||
(`trace!`, `span!`, etc.), ∈ #{nil io.opentelemetry.api.trace.Tracer Delay}.
|
(`trace!`, `span!`, etc.), ∈ #{nil io.opentelemetry.api.trace.Tracer Delay}.
|
||||||
See also `otel-tracing?`, `otel-get-default-providers`."
|
|
||||||
|
Defaults to the provider in `otel-default-providers_`.
|
||||||
|
See also `otel-tracing?`."
|
||||||
(enc/compile-when impl/enabled:otel-tracing?
|
(enc/compile-when impl/enabled:otel-tracing?
|
||||||
(delay
|
(delay
|
||||||
(when-let [^io.opentelemetry.api.trace.TracerProvider p
|
(when-let [^io.opentelemetry.api.trace.TracerProvider p
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
`:logger-provider` - nil or `io.opentelemetry.api.logs.LoggerProvider`,
|
`:logger-provider` - nil or `io.opentelemetry.api.logs.LoggerProvider`,
|
||||||
(see `telemere/get-default-providers` for default)."
|
(see `telemere/otel-default-providers_` for default)."
|
||||||
|
|
||||||
;; Notes:
|
;; Notes:
|
||||||
;; - Multi-threaded handlers may see signals ~out of order
|
;; - Multi-threaded handlers may see signals ~out of order
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue