🐛 Fix inconsistencies on error reporter module.

This commit is contained in:
Andrey Antukh 2020-12-28 13:10:35 +01:00 committed by Alonso Torres
parent ff6482fa29
commit 6c1e2b8eab
3 changed files with 17 additions and 16 deletions

View file

@ -29,6 +29,7 @@
<Logger name="app.error-reporter" level="debug" additivity="false"> <Logger name="app.error-reporter" level="debug" additivity="false">
<AppenderRef ref="console"/> <AppenderRef ref="console"/>
<AppenderRef ref="main" level="debug" />
</Logger> </Logger>
<Logger name="app" level="debug" additivity="false"> <Logger name="app" level="debug" additivity="false">

View file

@ -15,10 +15,10 @@
[app.config :as cfg] [app.config :as cfg]
[app.db :as db] [app.db :as db]
[app.tasks :as tasks] [app.tasks :as tasks]
[app.util.async :as aa] [app.worker :as wrk]
[app.util.emails :as emails] [app.util.json :as json]
[app.util.emails :as http]
[clojure.core.async :as a] [clojure.core.async :as a]
[clojure.data.json :as json]
[clojure.spec.alpha :as s] [clojure.spec.alpha :as s]
[clojure.tools.logging :as log] [clojure.tools.logging :as log]
[cuerdas.core :as str] [cuerdas.core :as str]
@ -32,11 +32,10 @@
(declare send-notification!) (declare send-notification!)
(defonce queue-fn identity) (defonce queue-fn identity)
(s/def ::http-client fn?) (s/def ::uri ::us/string)
(s/def ::uri (s/nilable ::us/uri))
(defmethod ig/pre-init-spec ::instance [_] (defmethod ig/pre-init-spec ::instance [_]
(s/keys :req-un [::aa/executor ::uri ::http-client])) (s/keys :req-un [::wrk/executor]
:opt-un [::uri]))
(defmethod ig/init-key ::instance (defmethod ig/init-key ::instance
[_ {:keys [executor uri] :as cfg}] [_ {:keys [executor uri] :as cfg}]
@ -63,19 +62,16 @@
(defn send-notification! (defn send-notification!
[cfg report] [cfg report]
(try (try
(let [send! (:http-client cfg) (let [uri (:uri cfg)
uri (:uri cfg)
prefix (str/<< "Unhandled exception (@channel):\n" prefix (str/<< "Unhandled exception (@channel):\n"
"- host: `~(:host cfg/config)`\n" "- host: `~(:host cfg/config)`\n"
"- version: `~(:full cfg/version)`") "- version: `~(:full cfg/version)`")
text (str prefix "\n```" report "\n```") text (str prefix "\n```" report "\n```")
rsp (send! {:uri uri rsp (http/send! {:uri uri
:method :post :method :post
:headers {"content-type" "application/json"} :headers {"content-type" "application/json"}
:body (json/write-str {:text text})})] :body (json/encode-str {:text text})})]
(when (not= (:status rsp) 200) (when (not= (:status rsp) 200)
(log/warnf "Error reporting webhook replying with unexpected status: %s\n%s" (log/warnf "Error reporting webhook replying with unexpected status: %s\n%s"

View file

@ -197,7 +197,11 @@
:uri (:telemetry-uri cfg/config)} :uri (:telemetry-uri cfg/config)}
:app.srepl/server :app.srepl/server
{:port 6062}} {:port 6062}
:app.error-reporter/instance
{:uri (:error-report-webhook cfg/config)
:executor (ig/ref :app.worker/executor)}}
(when (:telemetry-server-enabled cfg/config) (when (:telemetry-server-enabled cfg/config)
{:app.telemetry/handler {:app.telemetry/handler