|
94 | 94 | (def zero-rows? (partial rows-pred? zero?))
|
95 | 95 | (def some-rows? (partial rows-pred? pos?))
|
96 | 96 |
|
| 97 | +(def stat-preds |
| 98 | + [{:description "Errors" :pred failed?} |
| 99 | + {:description "Not found" :pred (every-pred successful? zero-rows?)} |
| 100 | + {:description "Successes" :pred (every-pred successful? some-rows?)} |
| 101 | + {:description "Total" :pred identity}]) |
| 102 | + |
97 | 103 | (defn compute-summary-stats
|
98 |
| - [options n mux pred] |
| 104 | + [options n mux {:keys [description pred]}] |
99 | 105 | (-> (transduce-promise options n mux (comp (filter pred) (map :duration)) stats/summary)
|
100 | 106 | (p/then (fn [{:keys [dist] :as summary}]
|
101 | 107 | (-> summary
|
102 | 108 | (dissoc :dist)
|
103 | 109 | (merge dist)
|
104 |
| - (as-> $ (m/map-vals #(round2 2 (or % 0)) $))))))) |
| 110 | + (as-> $ (m/map-vals #(round2 2 (or % 0)) $)) |
| 111 | + (assoc :description description)))))) |
105 | 112 |
|
106 | 113 | (defn compute-stats
|
107 | 114 | [ctx n mux]
|
108 |
| - (-> (p/all (conj (map (partial compute-summary-stats ctx n mux) |
109 |
| - [failed? |
110 |
| - (every-pred successful? zero-rows?) |
111 |
| - (every-pred successful? some-rows?) |
112 |
| - identity]))) |
113 |
| - (p/then (fn [[failed no-data data total :as summaries]] |
| 115 | + (-> (p/all (conj (map (partial compute-summary-stats ctx n mux) stat-preds))) |
| 116 | + (p/then (fn [summaries] |
114 | 117 | (log/trace "summaries:" summaries)
|
115 |
| - (let [failures (get failed :count)] |
116 |
| - {:failures failures :summaries [(assoc failed :description "Errors") |
117 |
| - (assoc no-data :description "Not found") |
118 |
| - (assoc data :description "Successes") |
119 |
| - (assoc total :description "Total")]}))))) |
| 118 | + (let [failures (get-in summaries [0 :count])] |
| 119 | + {:failures failures :summaries summaries}))))) |
120 | 120 |
|
121 | 121 | (defn render
|
122 | 122 | [{:keys [nr] :as ctx} {:keys [total-duration summaries] :as stats}]
|
|
0 commit comments