From bb715fb206742ad82ff2817a77ece58ffb6c12ba Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Wed, 26 Feb 2025 18:48:18 +0100 Subject: [PATCH] [mod] OpenTelemetry: use standard attribute names when possible --- main/src/taoensso/telemere/open_telemetry.clj | 34 ++++++++++++------- main/test/taoensso/telemere_tests.cljc | 12 +++---- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/main/src/taoensso/telemere/open_telemetry.clj b/main/src/taoensso/telemere/open_telemetry.clj index 645c455..fc97433 100644 --- a/main/src/taoensso/telemere/open_telemetry.clj +++ b/main/src/taoensso/telemere/open_telemetry.clj @@ -133,34 +133,44 @@ (defn- signal->attrs "Returns `Attributes` for given signal. - Ref. ." + Ref. , + ." ^Attributes [signal] (let [ab (Attributes/builder)] (put-attr! ab "error" (utils/error-signal? signal)) ; Standard ;; (put-attr! ab "host.name" (utils/hostname)) ; Standard (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)) + (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)] - (put-attr! ab "level" ; Standard - (level->string level))) + (put-attr! ab "level" (level->string level))) (when-let [{:keys [type msg trace data]} (truss/ex-map (get signal :error))] - (put-attr! ab "exception.type" type) ; Standard - (put-attr! ab "exception.message" msg) ; Standard + ;; Standard + (put-attr! ab "exception.type" type) + (put-attr! ab "exception.message" msg) (when trace - (put-attr! ab "exception.stacktrace" ; Standard + (put-attr! ab "exception.stacktrace" (#'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] - (put-attr! ab "ns" ns) - (put-attr! ab "line" line) - (put-attr! ab "file" file) + (let [{:keys [ns line column]} signal] + ;; All standard + (put-attr! ab "code.namespace" ns) + (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 "id" id) (put-attr! ab "uid" uid)) diff --git a/main/test/taoensso/telemere_tests.cljc b/main/test/taoensso/telemere_tests.cljc index 88bb5a3..b63dee0 100644 --- a/main/test/taoensso/telemere_tests.cljc +++ b/main/test/taoensso/telemere_tests.cljc @@ -1012,9 +1012,9 @@ {:kind :event :level :info - :ns "ns" - :file "file" - :line 100 + :ns "ns" + :line 10 + :column 20 :id ::id1 :uid #uuid "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82" @@ -1037,9 +1037,9 @@ {"kind" ":event" "level" "INFO" - "ns" "ns" - "file" "file" - "line" 100 + "code.namespace" "ns" + "code.line.number" 10 + "code.column.number" 20 "id" ":taoensso.telemere-tests/id1", "uid" "7e9c1df6-78e4-40ac-8c5c-e2353df9ab82",