Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns akvo.lumen.admin.stats.example
- (:require [cheshire.core :as json]
- [clojure.pprint :refer [pprint]]))
- (comment
- ;; # 1 Get list of tenants on form "tenant1,tenant2,..."
- ;; $ docker exec -i -t akvolumen_backend_1 env ENCRYPTION_KEY=... KC_URL=... KC_SECRET=<SECRET> PG_HOST=... PG_DATABASE=... PG_USER=... PG_PASSWORD=... lein run -m akvo.lumen.admin.stats.run-manager-query "SELECT label from tenants;" > tenants.edn
- ;; Now massage the contents of tenants.edn Replace " with \" and put the list
- ;; of comma separated tenants in a string ("tenants1,tenant2")
- ;;
- ;; Make sure the list includes only tenants you want to include
- (def all-tenants (json/decode "[{\"label\":\"daniel\"},{\"label\":\"demo\"}]"))
- (def set-of-non-production-tenants #{"daniel" "nadia" "gabe"})
- (def tenants (json/encode
- (reduce (fn [m {:strs [label]}]
- (if-not (contains? set-of-non-production-tenants label)
- (conj m label)
- m))
- []
- all-tenants)))
- (prn (count tenants))
- ;; # 2 Get dataset data
- ;; $ docker exec -i -t akvolumen_backend_1 env ENCRYPTION_KEY=... KC_URL=... KC_SECRET=<SECRET> PG_HOST=... PG_DATABASE=... PG_USER=... PG_PASSWORD=... lein run -m akvo.lumen.admin.stats.run-query "demo,tenant1,..." "SELECT count(id) from dataset" > datasets.edn
- ;; # 3 Get dashboard data
- ;; $ docker exec -i -t akvolumen_backend_1 env ENCRYPTION_KEY=... KC_URL=... KC_SECRET=<SECRET> PG_HOST=... PG_DATABASE=... PG_USER=... PG_PASSWORD=... lein run -m akvo.lumen.admin.stats.run-query "demo,tenant1,..." "SELECT count(id) from dashboard" > dashboard.edn
- ;; # 4 Sum up data in scratch
- ;; Replace " with \" and put it all in "" to get json, which we then decode.
- (require '[cheshire.core :as json])
- (def datasets (json/decode "[[\"tenant1\",[{\"count\":2}]],[\"demo\",[{\"count\":91}]]]"))
- (println "datasets")
- (prn (reduce (fn [m [_ [{:strs [count]}]]]
- (+ m count))
- 0
- datasets))
- (def dashboards (json/decode "[[\"tenant1\",[{\"count\":9}]],[\"demo\",[{\"count\":27}]]]"))
- (prn (reduce (fn [m [_ [{:strs [count]}]]]
- (+ m count))
- 0
- dashboards))
- )
Add Comment
Please, Sign In to add comment