From 2f21560fe34592a6427204d0fcd7b85f7d630503 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 30 Aug 2022 20:18:27 +0200 Subject: [PATCH] :tada: Add improved approach for async flow time measurements --- backend/src/app/redis.clj | 4 ++-- backend/src/app/util/time.clj | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/backend/src/app/redis.clj b/backend/src/app/redis.clj index 4ec815e24d..06b7e5e7a4 100644 --- a/backend/src/app/redis.clj +++ b/backend/src/app/redis.clj @@ -283,14 +283,14 @@ (p/rejected cause)))) (eval-script [sha] - (let [start-ts (System/nanoTime)] + (let [tpoint (dt/tpoint)] (-> (.evalsha ^RedisScriptingAsyncCommands cmd ^String sha ^ScriptOutputType ScriptOutputType/MULTI ^"[Ljava.lang.String;" keys ^"[Ljava.lang.String;" vals) (p/then (fn [result] - (let [elapsed (dt/duration {:nanos (- (System/nanoTime) start-ts)})] + (let [elapsed (tpoint)] (mtx/run! metrics {:id :redis-eval-timing :labels [(name sname)] :val (inst-ms elapsed)}) diff --git a/backend/src/app/util/time.clj b/backend/src/app/util/time.clj index f51706ccef..5858a46e69 100644 --- a/backend/src/app/util/time.clj +++ b/backend/src/app/util/time.clj @@ -325,3 +325,13 @@ CronExpression (-edn [o] (pr-str o))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Measurement Helpers +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defn tpoint + "Create a measurement checkpoint for time measurement of potentially + asynchronous flow." + [] + (let [p1 (System/nanoTime)] + #(duration {:nanos (- (System/nanoTime) p1)})))