mirror of
https://github.com/penpot/penpot.git
synced 2025-02-13 02:28:18 -05:00
✨ Minor improvements on telemetry task
This commit is contained in:
parent
9b78b2a432
commit
ce61b783fb
3 changed files with 39 additions and 6 deletions
|
@ -176,7 +176,7 @@
|
||||||
:task :file-offload})
|
:task :file-offload})
|
||||||
|
|
||||||
(when (contains? cf/flags :audit-log-archive)
|
(when (contains? cf/flags :audit-log-archive)
|
||||||
{:cron #app/cron "0 */3 * * * ?" ;; every 3m
|
{:cron #app/cron "0 */5 * * * ?" ;; every 5m
|
||||||
:task :audit-log-archive})
|
:task :audit-log-archive})
|
||||||
|
|
||||||
(when (contains? cf/flags :audit-log-gc)
|
(when (contains? cf/flags :audit-log-gc)
|
||||||
|
@ -185,7 +185,7 @@
|
||||||
|
|
||||||
(when (or (contains? cf/flags :telemetry)
|
(when (or (contains? cf/flags :telemetry)
|
||||||
(cf/get :telemetry-enabled))
|
(cf/get :telemetry-enabled))
|
||||||
{:cron #app/cron "0 0 */6 * * ?" ;; every 6h
|
{:cron #app/cron "0 30 */3,23 * * ?"
|
||||||
:task :telemetry})]}
|
:task :telemetry})]}
|
||||||
|
|
||||||
:app.worker/registry
|
:app.worker/registry
|
||||||
|
|
|
@ -14,12 +14,17 @@
|
||||||
[app.common.spec :as us]
|
[app.common.spec :as us]
|
||||||
[app.config :as cfg]
|
[app.config :as cfg]
|
||||||
[app.db :as db]
|
[app.db :as db]
|
||||||
|
[app.util.async :refer [thread-sleep]]
|
||||||
[app.util.http :as http]
|
[app.util.http :as http]
|
||||||
[app.util.json :as json]
|
[app.util.json :as json]
|
||||||
[clojure.spec.alpha :as s]
|
[clojure.spec.alpha :as s]
|
||||||
[integrant.core :as ig]))
|
[integrant.core :as ig]))
|
||||||
|
|
||||||
(declare retrieve-stats)
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; TASK ENTRY POINT
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(declare get-stats)
|
||||||
(declare send!)
|
(declare send!)
|
||||||
|
|
||||||
(s/def ::version ::us/string)
|
(s/def ::version ::us/string)
|
||||||
|
@ -34,11 +39,18 @@
|
||||||
(defmethod ig/init-key ::handler
|
(defmethod ig/init-key ::handler
|
||||||
[_ {:keys [pool sprops version] :as cfg}]
|
[_ {:keys [pool sprops version] :as cfg}]
|
||||||
(fn [_]
|
(fn [_]
|
||||||
|
;; Sleep randomly between 0 to 10s
|
||||||
|
(thread-sleep (rand-int 10000))
|
||||||
|
|
||||||
(let [instance-id (:instance-id sprops)]
|
(let [instance-id (:instance-id sprops)]
|
||||||
(-> (retrieve-stats pool version)
|
(-> (get-stats pool version)
|
||||||
(assoc :instance-id instance-id)
|
(assoc :instance-id instance-id)
|
||||||
(send! cfg)))))
|
(send! cfg)))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; IMPL
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defn- send!
|
(defn- send!
|
||||||
[data cfg]
|
[data cfg]
|
||||||
(let [response (http/send! {:method :post
|
(let [response (http/send! {:method :post
|
||||||
|
@ -63,6 +75,20 @@
|
||||||
[conn]
|
[conn]
|
||||||
(-> (db/exec-one! conn ["select count(*) as count from file;"]) :count))
|
(-> (db/exec-one! conn ["select count(*) as count from file;"]) :count))
|
||||||
|
|
||||||
|
(defn- retrieve-num-file-changes
|
||||||
|
[conn]
|
||||||
|
(let [sql (str "select count(*) as count "
|
||||||
|
" from file_change "
|
||||||
|
" where date_trunc('day', created_at) = date_trunc('day', now())")]
|
||||||
|
(-> (db/exec-one! conn [sql]) :count)))
|
||||||
|
|
||||||
|
(defn- retrieve-num-touched-files
|
||||||
|
[conn]
|
||||||
|
(let [sql (str "select count(distinct file_id) as count "
|
||||||
|
" from file_change "
|
||||||
|
" where date_trunc('day', created_at) = date_trunc('day', now())")]
|
||||||
|
(-> (db/exec-one! conn [sql]) :count)))
|
||||||
|
|
||||||
(defn- retrieve-num-users
|
(defn- retrieve-num-users
|
||||||
[conn]
|
[conn]
|
||||||
(-> (db/exec-one! conn ["select count(*) as count from profile;"]) :count))
|
(-> (db/exec-one! conn ["select count(*) as count from profile;"]) :count))
|
||||||
|
@ -118,7 +144,7 @@
|
||||||
:jvm-heap-max (.maxMemory runtime)
|
:jvm-heap-max (.maxMemory runtime)
|
||||||
:jvm-cpus (.availableProcessors runtime)}))
|
:jvm-cpus (.availableProcessors runtime)}))
|
||||||
|
|
||||||
(defn retrieve-stats
|
(defn get-stats
|
||||||
[conn version]
|
[conn version]
|
||||||
(let [referer (if (cfg/get :telemetry-with-taiga)
|
(let [referer (if (cfg/get :telemetry-with-taiga)
|
||||||
"taiga"
|
"taiga"
|
||||||
|
@ -130,7 +156,9 @@
|
||||||
:total-files (retrieve-num-files conn)
|
:total-files (retrieve-num-files conn)
|
||||||
:total-users (retrieve-num-users conn)
|
:total-users (retrieve-num-users conn)
|
||||||
:total-fonts (retrieve-num-fonts conn)
|
:total-fonts (retrieve-num-fonts conn)
|
||||||
:total-comments (retrieve-num-comments conn)}
|
:total-comments (retrieve-num-comments conn)
|
||||||
|
:total-file-changes (retrieve-num-file-changes conn)
|
||||||
|
:total-touched-files (retrieve-num-touched-files conn)}
|
||||||
(d/merge
|
(d/merge
|
||||||
(retrieve-team-averages conn)
|
(retrieve-team-averages conn)
|
||||||
(retrieve-jvm-stats))
|
(retrieve-jvm-stats))
|
||||||
|
|
|
@ -295,6 +295,11 @@
|
||||||
(s/assert cron? cron)
|
(s/assert cron? cron)
|
||||||
(.toInstant (.getNextValidTimeAfter cron (Date/from now))))
|
(.toInstant (.getNextValidTimeAfter cron (Date/from now))))
|
||||||
|
|
||||||
|
(defn get-next
|
||||||
|
[cron tnow]
|
||||||
|
(let [nt (next-valid-instant-from cron tnow)]
|
||||||
|
(cons nt (lazy-seq (get-next cron nt)))))
|
||||||
|
|
||||||
(defmethod print-method CronExpression
|
(defmethod print-method CronExpression
|
||||||
[mv ^java.io.Writer writer]
|
[mv ^java.io.Writer writer]
|
||||||
(.write writer (str "#app/cron \"" (.toString ^CronExpression mv) "\"")))
|
(.write writer (str "#app/cron \"" (.toString ^CronExpression mv) "\"")))
|
||||||
|
|
Loading…
Add table
Reference in a new issue