Skip to content

Commit

Permalink
update ->sentry-event function.
Browse files Browse the repository at this point in the history
  • Loading branch information
Arthur Aliiev authored and Arthur Aliiev committed Mar 7, 2024
1 parent cadfcd8 commit 2311f14
Showing 1 changed file with 25 additions and 21 deletions.
46 changes: 25 additions & 21 deletions src/spootnik/reporter/sentry.clj
Original file line number Diff line number Diff line change
Expand Up @@ -48,29 +48,30 @@
(or (System/getenv "HOSTNAME")
(second (swap! cache hostname))))))

(defn- e->sentry-request [e]
(let [payload (-> e :extra :payload)]
{:url (-> payload :uri)
:method (-> payload :request-method name clojure.string/upper-case)
:query-string (-> payload :query-string)
:headers (-> payload :headers)}))
(defn- payload->sentry-request [payload]
{:url (-> payload :uri)
:method (-> payload :request-method name clojure.string/upper-case)
:query-string (-> payload :query-string)
:headers (-> payload :headers)})

(defn e->sentry-event [e options tags]
(let [{:keys [message extra throwable]} e]

(if message
{:message message}

{:message (ex-message e)
:request (e->sentry-request e)
:level :error
:platform "java"
:user {:id (-> e :extra :org/uuid str)}
:tags tags
:server-name (localhost)
:fingerprints (some-> options :fingerpint seq)
:extra extra
:throwable throwable})))
(let [{:keys [message extra throwable]} e
message (or message (ex-message e))
user (some-> extra :org/uuid str)
fingerprints (some-> options :fingerpint seq)
request (some-> extra :payload payload->sentry-request)]

(cond-> {:message message
:level :error
:platform "java"
:server-name (localhost)}

throwable (assoc :throwable throwable)
extra (assoc :extra extra)
(seq tags) (assoc :tags tags)
user (assoc :user user)
fingerprints (assoc :fingerprints fingerprints)
request (assoc :request request))))

(defn send-event! [dsn options e tags]
(let [event (e->sentry-event e options tags)]
Expand All @@ -79,12 +80,15 @@
(sentry-io/send-event event)
(catch Exception e
(d/error-deferred e)))

(d/chain
(fn [event-id]
(error e (str "captured exception as sentry event: " event-id))))

(d/catch (fn [e']
(error e "Failed to capture exception" {:tags tags :capture-exception e'})
(send-event! dsn options e' tags))))

(swap! http-requests-payload-stub conj event))))

(defn init! [dsn sentry]
Expand Down

0 comments on commit 2311f14

Please sign in to comment.