Class: Gitlab::PerformanceBar::Stats

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/performance_bar/stats.rb

Overview

This class fetches Peek stats stored in redis and logs them in a structured log (so these can be then analyzed in Kibana)

Constant Summary collapse

IGNORED_BACKTRACE_LOCATIONS =
%w[
  ee/lib/ee/peek
  lib/peek
  lib/gitlab/database
  lib/gitlab/gitaly_client.rb
  lib/gitlab/gitaly_client/call.rb
  lib/gitlab/instrumentation/redis_interceptor.rb
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(redis) ⇒ Stats

Returns a new instance of Stats.



17
18
19
# File 'lib/gitlab/performance_bar/stats.rb', line 17

def initialize(redis)
  @redis = redis
end

Instance Method Details

#process(id) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/gitlab/performance_bar/stats.rb', line 21

def process(id)
  data = request(id)
  return unless data

  log_queries(id, data, 'active-record')
  log_queries(id, data, 'gitaly')
  log_queries(id, data, 'redis')
rescue StandardError => e
  logger.error(message: "failed to process request id #{id}: #{e.message}")
end