steffan-westcott / clj-otel

An idiomatic Clojure API for adding telemetry to your libraries and applications using OpenTelemetry.
https://cljdoc.org/d/com.github.steffan-westcott/clj-otel-api
Apache License 2.0
183 stars 12 forks source link

Support logs bridge API #8

Open devurandom opened 1 year ago

devurandom commented 1 year ago

It would be nice if clj-otel would support the recently stabilized logs and logs bridge APIs.

I am particularly interested in a clojury wrapper for:

(let [^java.time.Instant
      instant         _
      ^io.opentelemetry.api.logs.Severity
      severity        _
      ^io.opentelemetry.api.common.Attributes
      attributes      _
      ^java.lang.String
      message         _
      ^java.lang.String
      ns-str          _
      ^io.opentelemetry.api.logs.LoggerProvider
      logger-provider _
      ^io.opentelemetry.api.logs.Logger
      logger          (.get logger-provider ns-str)]
  (.emit
    (doto (.logRecordBuilder logger)
      (.setTimestamp instant)
      (.setSeverity severity)
      (.setSeverityText (.toString severity))
      (.setAllAttributes attributes)
      (.setBody message))))

(Explicit type annotations to prevent misunderstandings.)

See https://github.com/ptaoussanis/timbre/pull/374 for an example of what I am trying to do with this.

steffan-westcott commented 1 year ago

@devurandom Thank you for your interest in clj-otel. To set expectations, please note I intend to establish support for existing OpenTelemetry Java log appenders before addressing the Logs Bridge API.