mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-18 18:11:12 +00:00
[fix] [#10] OpenTelemetry handler: render keywords as plain strings
Before: `:foo/bar` -> ":foo/bar" After: `:foo/bar` -> "foo/bar"
This commit is contained in:
parent
863cea15fa
commit
6e94215e7a
2 changed files with 23 additions and 12 deletions
|
|
@ -51,18 +51,23 @@
|
||||||
(extend-protocol IAttr+
|
(extend-protocol IAttr+
|
||||||
nil (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) "nil")) ; Like pr-edn*
|
nil (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) "nil")) ; Like pr-edn*
|
||||||
Boolean (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
Boolean (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
||||||
|
|
||||||
String (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
String (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
||||||
clojure.lang.Named (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v str))) ; ":foo/bar", etc.
|
java.util.UUID (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (str v))) ; "d4fc65a0..."
|
||||||
java.util.UUID (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v str))) ; "d4fc65a0..."
|
|
||||||
|
|
||||||
Long (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
Long (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
||||||
Integer (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v long)))
|
Integer (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (long v)))
|
||||||
Short (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v long)))
|
Short (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (long v)))
|
||||||
Byte (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v long)))
|
Byte (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (long v)))
|
||||||
Double (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
Double (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) v))
|
||||||
Float (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v double)))
|
Float (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (double v)))
|
||||||
Number (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (-> v double)))
|
Number (attr+ [v k ^AttributesBuilder b] (.put b (attr-name k) (double v)))
|
||||||
|
|
||||||
|
clojure.lang.Named
|
||||||
|
(attr+ [v k ^AttributesBuilder b]
|
||||||
|
(.put b (attr-name k)
|
||||||
|
#_(str v) ; ":foo/bar", etc.
|
||||||
|
(let [n (name v)] (if-let [ns (namespace v)] (str ns "/" n) n)) ; "foo/bar", etc.
|
||||||
|
))
|
||||||
|
|
||||||
clojure.lang.IPersistentCollection
|
clojure.lang.IPersistentCollection
|
||||||
(attr+ [v k ^AttributesBuilder b]
|
(attr+ [v k ^AttributesBuilder b]
|
||||||
|
|
@ -233,3 +238,9 @@
|
||||||
(.setBody b body))
|
(.setBody b body))
|
||||||
|
|
||||||
(.emit b)))))))
|
(.emit b)))))))
|
||||||
|
|
||||||
|
(comment
|
||||||
|
(as-attrs
|
||||||
|
(signal->attrs-map :my-attrs
|
||||||
|
{:level :info :data {:ns/kw1 :v1 :ns/kw2 :v2}
|
||||||
|
:my-attrs {:longs [1 1 2 3] :strs ["a" "b" "c"]}})))
|
||||||
|
|
|
||||||
|
|
@ -917,7 +917,7 @@
|
||||||
:strings ["a" "b" "c"],
|
:strings ["a" "b" "c"],
|
||||||
:map {:k1 "v1"}}))
|
:map {:k1 "v1"}}))
|
||||||
|
|
||||||
"{bools=[true, false, false], double=5.0, doubles=[5.0, 5.0, 5.0], keyword=\":foo/bar\", long=5, longs=[5, 5, 5], map=[[:k1 \"v1\"]], mixed=[5, \"5\", nil], nil=\"nil\", string=\"s\", strings=[\"a\", \"b\", \"c\"]}")))
|
"{bools=[true, false, false], double=5.0, doubles=[5.0, 5.0, 5.0], keyword=\"foo/bar\", long=5, longs=[5, 5, 5], map=[[:k1 \"v1\"]], mixed=[5, \"5\", nil], nil=\"nil\", string=\"s\", strings=[\"a\", \"b\", \"c\"]}")))
|
||||||
|
|
||||||
(testing "signal->attrs-map"
|
(testing "signal->attrs-map"
|
||||||
(let [attrs-map #'otel/signal->attrs-map]
|
(let [attrs-map #'otel/signal->attrs-map]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue