Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2016-01-04 14:14:36 +0300
committerYorick Peterse <yorickpeterse@gmail.com>2016-01-04 14:14:36 +0300
commit66a997a91403eef62ffd9fb789e899619d021a26 (patch)
treef7ca97b6912a3924c8dfcc635427976360824db8 /lib/gitlab/metrics
parent96075be6f4688a59335130dc796132ad4f232442 (diff)
Track total query/view timings in transactions
Diffstat (limited to 'lib/gitlab/metrics')
-rw-r--r--lib/gitlab/metrics/subscribers/action_view.rb1
-rw-r--r--lib/gitlab/metrics/subscribers/active_record.rb22
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/gitlab/metrics/subscribers/action_view.rb b/lib/gitlab/metrics/subscribers/action_view.rb
index 7e0dcf99d92..7c0105d543a 100644
--- a/lib/gitlab/metrics/subscribers/action_view.rb
+++ b/lib/gitlab/metrics/subscribers/action_view.rb
@@ -19,6 +19,7 @@ module Gitlab
values = values_for(event)
tags = tags_for(event)
+ current_transaction.increment(:view_duration, event.duration)
current_transaction.add_metric(SERIES, values, tags)
end
diff --git a/lib/gitlab/metrics/subscribers/active_record.rb b/lib/gitlab/metrics/subscribers/active_record.rb
new file mode 100644
index 00000000000..8008b3bc895
--- /dev/null
+++ b/lib/gitlab/metrics/subscribers/active_record.rb
@@ -0,0 +1,22 @@
+module Gitlab
+ module Metrics
+ module Subscribers
+ # Class for tracking the total query duration of a transaction.
+ class ActiveRecord < ActiveSupport::Subscriber
+ attach_to :active_record
+
+ def sql(event)
+ return unless current_transaction
+
+ current_transaction.increment(:sql_duration, event.duration)
+ end
+
+ private
+
+ def current_transaction
+ Transaction.current
+ end
+ end
+ end
+ end
+end