Skip to content
Snippets Groups Projects
Commit 97f8c627 authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Added total query time to Sherlock

This makes it easier to see if a problem is caused by slow queries or
slow Ruby code (unrelated to any SQL queries that might be used).
parent 31a34b59
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -25,6 +25,12 @@
%strong
= @transaction.duration.round(2)
= t('sherlock.seconds')
%li
%span.light
#{t('sherlock.query_time')}
%strong
= @transaction.query_duration.round(2)
= t('sherlock.seconds')
%li
%span.light
#{t('sherlock.finished_at')}:
Loading
Loading
Loading
Loading
@@ -35,3 +35,4 @@ en:
events: Events
percent: '%'
count: Count
query_time: Query Time
Loading
Loading
@@ -36,6 +36,11 @@ module Gitlab
@duration ||= started_at && finished_at ? finished_at - started_at : 0
end
 
# Returns the total query duration in seconds.
def query_duration
@query_duration ||= @queries.map { |q| q.duration }.inject(:+) / 1000.0
end
def to_param
@id
end
Loading
Loading
Loading
Loading
@@ -84,6 +84,19 @@ describe Gitlab::Sherlock::Transaction do
end
end
 
describe '#query_duration' do
it 'returns the total query duration in seconds' do
time = Time.now
query1 = Gitlab::Sherlock::Query.new('SELECT 1', time, time + 5)
query2 = Gitlab::Sherlock::Query.new('SELECT 2', time, time + 2)
transaction.queries << query1
transaction.queries << query2
expect(transaction.query_duration).to be_within(0.1).of(7.0)
end
end
describe '#to_param' do
it 'returns the transaction ID' do
expect(transaction.to_param).to eq(transaction.id)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment