ad1c71663f
This uses an ActiveRecord subscriber to get queries and calculate the total query time from that. This means that the total will always be consistent with the queries in the table. It does however mean that we could potentially miss some queries that don't go through ActiveRecord. Making this change also allows us to unify the response JSON a little bit, making the frontend slightly simpler as a result.
33 lines
697 B
Ruby
33 lines
697 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Peek
|
|
module Views
|
|
class Gitaly < DetailedView
|
|
private
|
|
|
|
def duration
|
|
::Gitlab::GitalyClient.query_time
|
|
end
|
|
|
|
def calls
|
|
::Gitlab::GitalyClient.get_request_count
|
|
end
|
|
|
|
def call_details
|
|
::Gitlab::GitalyClient.list_call_details
|
|
end
|
|
|
|
def format_call_details(call)
|
|
pretty_request = call[:request]&.reject { |k, v| v.blank? }.to_h.pretty_inspect
|
|
|
|
super.merge(request: pretty_request || {})
|
|
end
|
|
|
|
def setup_subscribers
|
|
subscribe 'start_processing.action_controller' do
|
|
::Gitlab::GitalyClient.query_time = 0
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|