From 9cf8dec29c8c7b5fa3276fe8581d66f8cb0ff1eb Mon Sep 17 00:00:00 2001 From: Camilo Polymeris Date: Sat, 2 Jul 2016 15:42:23 -0400 Subject: [PATCH] [#176] Add New Relic appender (@polymeris) --- .../timbre/appenders/3rd_party/newrelic.clj | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/taoensso/timbre/appenders/3rd_party/newrelic.clj diff --git a/src/taoensso/timbre/appenders/3rd_party/newrelic.clj b/src/taoensso/timbre/appenders/3rd_party/newrelic.clj new file mode 100644 index 0000000..c5afef2 --- /dev/null +++ b/src/taoensso/timbre/appenders/3rd_party/newrelic.clj @@ -0,0 +1,21 @@ +(ns taoensso.timbre.appenders.3rd-party.appenders.newrelic + "A New Relic appender" + {:author "Camilo Polymeris"} + (:import (com.newrelic.api.agent NewRelic) + (java.util HashMap))) + +(defn newrelic-appender + "New Relic appender. The Java agent must be installed and configured via newrelic.yml, see + https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation#h2-install-agent" + [& _] + {:enabled? true + :async? true + :min-level :warn + :rate-limit [[100 60000]] ;matches New Relic's own cap + :output-fn :inherit + :fn (fn [data] + (let [{:keys [output-fn ?err level]} data + params (HashMap. {"Log level" (name level)})] + (if ?err + (NewRelic/noticeError ?err params) + (NewRelic/noticeError (output-fn data) params))))})