Skip to content

Commit

Permalink
(PE-37113) benchmark: add/report simple catalog query duration metric
Browse files Browse the repository at this point in the history
  • Loading branch information
rbrw committed Dec 15, 2023
1 parent 10164d5 commit 386d871
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
15 changes: 12 additions & 3 deletions src/puppetlabs/puppetdb/cli/benchmark.clj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
[clojure.pprint :refer [pprint]]
[clojure.walk :as walk]
[me.raynes.fs :as fs]
[metrics.timers :as timers :refer [timer time!]]
[murphy :refer [try!]]
[puppetlabs.i18n.core :refer [trs]]
[puppetlabs.kitchensink.core :as kitchensink]
Expand All @@ -79,6 +80,7 @@
[puppetlabs.puppetdb.cheshire :as json]
[puppetlabs.puppetdb.cli.util :refer [exit run-cli-cmd]]
[puppetlabs.puppetdb.client :as client]
[puppetlabs.puppetdb.metrics.core :as metrics]
[puppetlabs.puppetdb.nio :refer [get-path]]
[puppetlabs.puppetdb.random
:refer [safe-sample-normal random-string random-bool random-sha1]]
Expand Down Expand Up @@ -116,6 +118,10 @@
(def ^:private warn-on-reflection-orig *warn-on-reflection*)
(set! *warn-on-reflection* true)

(def metrics
(let [reg (get-in metrics/metrics-registries [:benchmark :registry])]
{:query-duration (timer reg (metrics/keyword->metric-name [:global] :query-duration))}))

;; Completely ad-hoc...
(def ^:private discard-all-messages?
(->> (or (System/getenv "PDB_BENCH_DISCARD_ALL_MESSAGES") "")
Expand Down Expand Up @@ -632,7 +638,9 @@
(assert (seq queries))
(let [[query & more] queries
result (try!
(query-pdb-discard-response (query-uri base-url) query ssl-opts)
(time!
(:query-duration metrics)
(query-pdb-discard-response (query-uri base-url) query ssl-opts))
(assoc event :result true)
(catch IOException ex
(report-sender-ex ex)
Expand Down Expand Up @@ -829,11 +837,12 @@
cmd-per-sec (float (/ cmds time-diff-seconds))
query-per-sec (float (/ queries time-diff-seconds))]
(println-err
(trs "{0} cmd/s (~{1} nodes @ {2}m) | {3} query/s | {4} err"
(trs "{0} cmd/s (~{1} nodes @ {2}m) | {3} q/s {4} s/q | {5} err"
cmd-per-sec
(int (/ cmd-per-sec expected-node-message-rate))
(time/in-minutes run-interval)
query-per-sec
(format "%.2f" query-per-sec)
(format "%.2f" (-> metrics :query-duration timers/mean (/ 1000000000)))
errors))
(recur 0 0 0 t))
(recur cmds queries errors last-report-time)))))))
Expand Down
1 change: 1 addition & 0 deletions src/puppetlabs/puppetdb/metrics/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
:reporter (reporter registry {:domain domain})})))

(def metrics-registries {:admin (new-metrics "puppetlabs.puppetdb.admin")
:benchmark (new-metrics "puppetlabs.puppetdb.benchmark")
:mq (new-metrics "puppetlabs.puppetdb.mq")
:dlo (new-metrics "puppetlabs.puppetdb.dlo")
:http (new-metrics "puppetlabs.puppetdb.http")
Expand Down

0 comments on commit 386d871

Please sign in to comment.