From d9110a7ecab52ab0716a42c2075cebdf8028d5e7 Mon Sep 17 00:00:00 2001
From: Yorick Peterse <yorickpeterse@gmail.com>
Date: Mon, 11 Apr 2016 13:27:24 +0200
Subject: [PATCH] Track call counts in Gitlab::Metrics.measure_block

---
 doc/development/instrumentation.md | 7 ++++---
 lib/gitlab/metrics.rb              | 1 +
 spec/lib/gitlab/metrics_spec.rb    | 3 +++
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/doc/development/instrumentation.md b/doc/development/instrumentation.md
index f7e148fb3e4..c1cf2e77c26 100644
--- a/doc/development/instrumentation.md
+++ b/doc/development/instrumentation.md
@@ -14,10 +14,11 @@ Gitlab::Metrics.measure(:foo) do
 end
 ```
 
-Two values are measured for a block:
+3 values are measured for a block:
 
-1. The real time elapsed, stored in NAME_real_time
-2. The CPU time elapsed, stored in NAME_cpu_time
+1. The real time elapsed, stored in NAME_real_time.
+2. The CPU time elapsed, stored in NAME_cpu_time.
+3. The call count, stored in NAME_call_count.
 
 Both the real and CPU timings are measured in milliseconds.
 
diff --git a/lib/gitlab/metrics.rb b/lib/gitlab/metrics.rb
index 4d64555027e..33dd3e39f4d 100644
--- a/lib/gitlab/metrics.rb
+++ b/lib/gitlab/metrics.rb
@@ -97,6 +97,7 @@ module Gitlab
 
       Transaction.current.increment("#{name}_real_time", real_time)
       Transaction.current.increment("#{name}_cpu_time", cpu_time)
+      Transaction.current.increment("#{name}_call_count", 1)
 
       retval
     end
diff --git a/spec/lib/gitlab/metrics_spec.rb b/spec/lib/gitlab/metrics_spec.rb
index edefec909c9..a3b68455260 100644
--- a/spec/lib/gitlab/metrics_spec.rb
+++ b/spec/lib/gitlab/metrics_spec.rb
@@ -85,6 +85,9 @@ describe Gitlab::Metrics do
         expect(transaction).to receive(:increment).
           with('foo_cpu_time', a_kind_of(Numeric))
 
+        expect(transaction).to receive(:increment).
+          with('foo_call_count', 1)
+
         Gitlab::Metrics.measure(:foo) { 10 }
       end
 
-- 
GitLab