more protective and more tests

This commit is contained in:
Yann Esposito 2015-03-18 17:47:00 +01:00
parent 07d2000eb3
commit 9a72e63932
2 changed files with 45 additions and 9 deletions

View file

@ -1,5 +1,24 @@
(ns bigbrother.core (ns bigbrother.core
"This file provide helpers to manage time spend in functions" "This file provide helpers to manage time spend in functions
## Concepts
You count the time between a start and an end time.
Typically:
```
start
action1
log action1 finished
action2
log action2 finished
action1
log action1 finished
action3
log action3 finished
end
```
"
(:require [clojure.tools.logging :as log] (:require [clojure.tools.logging :as log]
[clojure.data.json :as json] [clojure.data.json :as json]
[overtone.at-at :refer [every mk-pool]] [overtone.at-at :refer [every mk-pool]]
@ -29,6 +48,7 @@
(def log-mmetric max-metrics/log-mmetric) (def log-mmetric max-metrics/log-mmetric)
(defn timer-loop-finished (defn timer-loop-finished
"The loop is finished"
([] ([]
;; increment the number of loop ;; increment the number of loop
(swap! n inc) (swap! n inc)
@ -77,22 +97,26 @@
(defn ok [] (fn [_] "ok")) (defn ok [] (fn [_] "ok"))
(defn warning [] (fn [_] "warning")) (defn warning [] (fn [_] "warning"))
(defn critical [] (fn [_] "critical")) (defn critical [] (fn [_] "critical"))
(defn informational [] (fn [_] "informational"))
(defn- to-riemann-event [[k v]] (defn- to-riemann-event [[k v]]
(when (number? v) (when (number? v)
(let [lvl-fn (get @level-by-key k) (let [lvl-fn (get @level-by-key k)
level (if lvl-fn (lvl-fn v) "ok")] level (if lvl-fn (lvl-fn v) "informational")]
(into (into
@riemann-conf @riemann-conf
{:service (str @riemann-service " " (name k)) {:service (str @riemann-service " " (name k))
:state level :state level
:metric v})))) :metric v}))))
(defn send-to-riemann [m] (defn send-to-riemann [m]
(let [result-map (into @default-map m) (let [result-map (into @default-map m)
events (remove nil? (map to-riemann-event result-map))] events (remove nil? (map to-riemann-event result-map))]
(when @riemann-conn (when @riemann-conn
(r/send-events @riemann-conn events)))) (try
(r/send-events @riemann-conn events)
(catch Exception e
(log/error e))))))
(defn reset-accumulators! [] (defn reset-accumulators! []

View file

@ -27,11 +27,16 @@
(log-time session :end) (log-time session :end)
(telescreen-off session) (telescreen-off session)
(end-session! session)) (end-session! session))
(let [result (resume-map 1000)] (let [result (resume-map 1000)
result2 (resume-map 2000)
]
(is (contains? result :nb)) (is (contains? result :nb))
(is (contains? result :x1)) (is (contains? result :x1))
(is (contains? result :x2)) (is (contains? result :x2))
(is (>= (:total result) (:x2 result)))))) (is (= (:x1 result) (:x1 result2)))
(is (= (:x2 result) (:x2 result2)))
(is (>= (:total result) (:x2 result)))
(is (= (/ (:nb result) 2) (:nb result2))))))
(deftest check-metrics (deftest check-metrics
(do (do
@ -46,13 +51,16 @@
(log-metric :foo 3) (log-metric :foo 3)
(log-metric :bar 1) (log-metric :bar 1)
(timer-loop-finished) (timer-loop-finished)
(let [result (resume-map 1000)] (let [result (resume-map 1000)
result2 (resume-map 2000)
]
(is (contains? result :foo)) (is (contains? result :foo))
(is (contains? result :bar)) (is (contains? result :bar))
(is (contains? result :nb)) (is (contains? result :nb))
(is (= 2.0 (:foo result))) (is (= 2.0 (:foo result)))
(is (= 2.0 (:bar result))) (is (= 2.0 (:bar result)))
(is (= 3.0 (:nb result)))))) (is (= 3.0 (:nb result)))
(is (= (/ (:nb result) 2) (:nb result2))))))
(deftest check-mmetrics (deftest check-mmetrics
(do (do
@ -66,12 +74,16 @@
(log-mmetric :foo 60) (log-mmetric :foo 60)
(log-mmetric :bar 6) (log-mmetric :bar 6)
(timer-loop-finished) (timer-loop-finished)
(let [result (resume-map 1000)] (let [result (resume-map 1000)
result2 (resume-map 2000)
]
(is (contains? result :foo)) (is (contains? result :foo))
(is (contains? result :bar)) (is (contains? result :bar))
(is (contains? result :nb)) (is (contains? result :nb))
(is (= 80 (:foo result))) (is (= 80 (:foo result)))
(is (= (:foo result) (:foo result2)))
(is (= 6 (:bar result))) (is (= 6 (:bar result)))
(is (= (:bar result) (:bar result2)))
(is (= 3.0 (:nb result)))))) (is (= 3.0 (:nb result))))))
(deftest check-counters (deftest check-counters