[mod] OpenTelemetry: use standard attribute names when possible

This commit is contained in:
Peter Taoussanis 2025-02-26 18:48:18 +01:00
parent 2c5599c234
commit bb715fb206
2 changed files with 28 additions and 18 deletions

View file

@ -133,34 +133,44 @@
(defn- signal->attrs (defn- signal->attrs
"Returns `Attributes` for given signal. "Returns `Attributes` for given signal.
Ref. <https://opentelemetry.io/docs/specs/otel/logs/data-model/>." Ref. <https://opentelemetry.io/docs/specs/otel/logs/data-model/>,
<https://opentelemetry.io/docs/specs/semconv/attributes-registry/>."
^Attributes [signal] ^Attributes [signal]
(let [ab (Attributes/builder)] (let [ab (Attributes/builder)]
(put-attr! ab "error" (utils/error-signal? signal)) ; Standard (put-attr! ab "error" (utils/error-signal? signal)) ; Standard
;; (put-attr! ab "host.name" (utils/hostname)) ; Standard ;; (put-attr! ab "host.name" (utils/hostname)) ; Standard
(when-let [{:keys [name ip]} (get signal :host)] (when-let [{:keys [name ip]} (get signal :host)]
(put-attr! ab "host.name" name) ; Standard ;; Both standard
(put-attr! ab "host.name" name)
(put-attr! ab "host.ip" ip)) (put-attr! ab "host.ip" ip))
(when-let [{:keys [name id]} (get signal :thread)]
;; Both standard
(put-attr! ab "thread.name" name)
(put-attr! ab "thread.id" id))
(when-let [level (get signal :level)] (when-let [level (get signal :level)]
(put-attr! ab "level" ; Standard (put-attr! ab "level" (level->string level)))
(level->string level)))
(when-let [{:keys [type msg trace data]} (truss/ex-map (get signal :error))] (when-let [{:keys [type msg trace data]} (truss/ex-map (get signal :error))]
(put-attr! ab "exception.type" type) ; Standard ;; Standard
(put-attr! ab "exception.message" msg) ; Standard (put-attr! ab "exception.type" type)
(put-attr! ab "exception.message" msg)
(when trace (when trace
(put-attr! ab "exception.stacktrace" ; Standard (put-attr! ab "exception.stacktrace"
(#'utils/format-clj-stacktrace trace))) (#'utils/format-clj-stacktrace trace)))
(when data (merge-attrs! ab "exception.data" data))) (when data ; Non-standard
(merge-attrs! ab "exception.data" data)))
(let [{:keys [ns line file, kind id uid]} signal] (let [{:keys [ns line column]} signal]
(put-attr! ab "ns" ns) ;; All standard
(put-attr! ab "line" line) (put-attr! ab "code.namespace" ns)
(put-attr! ab "file" file) (put-attr! ab "code.line.number" line)
(put-attr! ab "code.column.number" column))
(let [{:keys [kind id uid]} signal]
(put-attr! ab "kind" kind) (put-attr! ab "kind" kind)
(put-attr! ab "id" id) (put-attr! ab "id" id)
(put-attr! ab "uid" uid)) (put-attr! ab "uid" uid))

View file

@ -1012,9 +1012,9 @@
{:kind :event {:kind :event
:level :info :level :info
:ns "ns" :ns "ns"
:file "file" :line 10
:line 100 :column 20
:id ::id1 :id ::id1
:uid #uuid "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82" :uid #uuid "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82"
@ -1037,9 +1037,9 @@
{"kind" ":event" {"kind" ":event"
"level" "INFO" "level" "INFO"
"ns" "ns" "code.namespace" "ns"
"file" "file" "code.line.number" 10
"line" 100 "code.column.number" 20
"id" ":taoensso.telemere-tests/id1", "id" ":taoensso.telemere-tests/id1",
"uid" "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82", "uid" "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82",