summaryrefslogtreecommitdiff
path: root/lib/gitlab/metrics/transaction.rb
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2016-01-04 11:37:46 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2016-01-04 11:37:46 +0100
commit96075be6f4688a59335130dc796132ad4f232442 (patch)
tree0f747c8ae66f25a4865755c62960c99041220c7e /lib/gitlab/metrics/transaction.rb
parentcafc784ee1d5d0a0279077272af8ee435bb110e4 (diff)
downloadgitlab-ce-96075be6f4688a59335130dc796132ad4f232442.tar.gz
Ability to increment custom transaction values
This will be used to store/increment the total query/view rendering timings on a per transaction basis. This in turn can greatly reduce the amount of metrics stored.
Diffstat (limited to 'lib/gitlab/metrics/transaction.rb')
-rw-r--r--lib/gitlab/metrics/transaction.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/gitlab/metrics/transaction.rb b/lib/gitlab/metrics/transaction.rb
index 43a7dab5323..0aaebf262d4 100644
--- a/lib/gitlab/metrics/transaction.rb
+++ b/lib/gitlab/metrics/transaction.rb
@@ -19,7 +19,8 @@ module Gitlab
@started_at = nil
@finished_at = nil
- @tags = {}
+ @values = Hash.new(0)
+ @tags = {}
end
def duration
@@ -44,6 +45,10 @@ module Gitlab
@metrics << Metric.new(series, values, tags)
end
+ def increment(name, value)
+ @values[name] += value
+ end
+
def add_tag(key, value)
@tags[key] = value
end
@@ -54,7 +59,13 @@ module Gitlab
end
def track_self
- add_metric(@series, { duration: duration }, @tags)
+ values = { duration: duration }
+
+ @values.each do |name, value|
+ values[name] = value
+ end
+
+ add_metric(@series, values, @tags)
end
def submit