Adding more metrics
This commit is contained in:
@@ -7,3 +7,5 @@
|
||||
:start (statsd/setup! :host "127.0.0.1" :port 8125 :prefix "integreat.app" :tags #{(str "env:" (:dd-env env))
|
||||
(str "service:" (:dd-service env))})
|
||||
:stop (statsd/shutdown!))
|
||||
|
||||
|
||||
|
||||
@@ -1,42 +1,73 @@
|
||||
(ns auto-ap.server
|
||||
(:require [auto-ap.handler :refer [app]]
|
||||
[auto-ap.ledger :as ledger]
|
||||
[auto-ap.yodlee.core]
|
||||
[auto-ap.graphql.clients :as gq-clients]
|
||||
[auto-ap.background.invoices]
|
||||
(:gen-class)
|
||||
(:require auto-ap.background.invoices
|
||||
[auto-ap.background.requests :as requests]
|
||||
[auto-ap.background.sysco :as sysco]
|
||||
[auto-ap.background.vendor :as vendor]
|
||||
[auto-ap.background.metrics :as metrics]
|
||||
[auto-ap.square.core :as square]
|
||||
[auto-ap.datomic.migrate :as migrate]
|
||||
[auto-ap.import.yodlee :as yodlee]
|
||||
[auto-ap.import.yodlee2 :as yodlee2]
|
||||
[auto-ap.graphql.clients :as gq-clients]
|
||||
[auto-ap.handler :refer [app]]
|
||||
[auto-ap.import.intuit :as intuit]
|
||||
[auto-ap.import.plaid :as plaid]
|
||||
[nrepl.server :refer [start-server stop-server]]
|
||||
[config.core :refer [env]]
|
||||
[ring.adapter.jetty :refer [run-jetty]]
|
||||
[auto-ap.import.yodlee :as yodlee]
|
||||
[auto-ap.import.yodlee2 :as yodlee2]
|
||||
[auto-ap.ledger :as ledger]
|
||||
[auto-ap.square.core :as square]
|
||||
[clojure.tools.logging :as log]
|
||||
[unilog.config]
|
||||
[mount.core :as mount])
|
||||
(:gen-class))
|
||||
[config.core :refer [env]]
|
||||
[mount.core :as mount]
|
||||
[nrepl.server :refer [start-server]]
|
||||
[ring.adapter.jetty :refer [run-jetty]]
|
||||
[yang.scheduler :as scheduler]
|
||||
[com.unbounce.dogstatsd.core :as statsd])
|
||||
(:import org.eclipse.jetty.server.handler.StatisticsHandler))
|
||||
|
||||
(defn add-shutdown-hook! [^Runnable f]
|
||||
(.addShutdownHook (Runtime/getRuntime)
|
||||
(Thread. f)))
|
||||
|
||||
|
||||
|
||||
(defn configure-jetty [server]
|
||||
(let [stats-handler (StatisticsHandler.)
|
||||
default-handler (.getHandler server)]
|
||||
(.setHandler stats-handler default-handler)
|
||||
(.setHandler server stats-handler))
|
||||
(.setStopAtShutdown server true))
|
||||
|
||||
(mount/defstate port :start (Integer/parseInt (or (env :port) "3000")))
|
||||
(mount/defstate jetty
|
||||
:start (run-jetty app {:port port :join? false})
|
||||
:start (run-jetty app {:port port
|
||||
:join? false
|
||||
:configurator configure-jetty})
|
||||
:stop (.stop jetty))
|
||||
|
||||
(defn collect-jetty-stats []
|
||||
(try
|
||||
(statsd/gauge "requests.active" (.getRequestsActive (.getHandler jetty)))
|
||||
(statsd/gauge "requests.1xx" (.getResponses1xx (.getHandler jetty)))
|
||||
(statsd/gauge "requests.2xx" (.getResponses2xx (.getHandler jetty)))
|
||||
(statsd/gauge "requests.3xx" (.getResponses3xx (.getHandler jetty)))
|
||||
(statsd/gauge "requests.4xx" (.getResponses4xx (.getHandler jetty)))
|
||||
(statsd/gauge "requests.5xx" (.getResponses5xx (.getHandler jetty)))
|
||||
(.statsReset (.getHandler jetty))
|
||||
(catch Exception e
|
||||
(log/warn e))))
|
||||
|
||||
(mount/defstate jetty-stats
|
||||
:start (scheduler/every (* 1000 30) (collect-jetty-stats))
|
||||
:stop (scheduler/stop jetty-stats))
|
||||
|
||||
|
||||
|
||||
|
||||
(defn shutdown-mount []
|
||||
(mount/stop))
|
||||
|
||||
(defn -main [& args]
|
||||
(let [without (cond-> []
|
||||
(not (env :run-web? )) (into [#'jetty])
|
||||
(not (env :run-web? )) (into [#'jetty
|
||||
#'collect-jetty-stats])
|
||||
(not (env :run-background?)) (into [#'square/square-loader
|
||||
#'vendor/refresh-vendor-usages-worker
|
||||
#'ledger/touch-broken-ledger-worker
|
||||
|
||||
Reference in New Issue
Block a user