Class: Gitlab::Instrumentation::Zoekt

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/instrumentation/zoekt.rb

Constant Summary collapse

ZOEKT_REQUEST_COUNT =
:zoekt_request_count
ZOEKT_CALL_DURATION =
:zoekt_call_duration
ZOEKT_CALL_DETAILS =
:zoekt_call_details

Class Method Summary collapse

Class Method Details

.add_call_details(duration:, method:, path:, params: nil, body: nil) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gitlab/instrumentation/zoekt.rb', line 34

def add_call_details(duration:, method:, path:, params: nil, body: nil)
  return unless Gitlab::PerformanceBar.enabled_for_request?

  detail_store << {
    method: method,
    path: path,
    params: params,
    body: body,
    duration: duration,
    backtrace: ::Gitlab::BacktraceCleaner.clean_backtrace(caller)
  }
end

.add_duration(duration) ⇒ Object



29
30
31
32
# File 'lib/gitlab/instrumentation/zoekt.rb', line 29

def add_duration(duration)
  ::Gitlab::SafeRequestStore[ZOEKT_CALL_DURATION] ||= 0
  ::Gitlab::SafeRequestStore[ZOEKT_CALL_DURATION] += duration
end

.detail_storeObject



20
21
22
# File 'lib/gitlab/instrumentation/zoekt.rb', line 20

def detail_store
  ::Gitlab::SafeRequestStore[ZOEKT_CALL_DETAILS] ||= []
end

.get_request_countObject



11
12
13
# File 'lib/gitlab/instrumentation/zoekt.rb', line 11

def get_request_count
  ::Gitlab::SafeRequestStore[ZOEKT_REQUEST_COUNT] || 0
end

.increment_request_countObject



15
16
17
18
# File 'lib/gitlab/instrumentation/zoekt.rb', line 15

def increment_request_count
  ::Gitlab::SafeRequestStore[ZOEKT_REQUEST_COUNT] ||= 0
  ::Gitlab::SafeRequestStore[ZOEKT_REQUEST_COUNT] += 1
end

.query_timeObject



24
25
26
27
# File 'lib/gitlab/instrumentation/zoekt.rb', line 24

def query_time
  query_time = ::Gitlab::SafeRequestStore[ZOEKT_CALL_DURATION] || 0
  query_time.round(::Gitlab::InstrumentationHelper::DURATION_PRECISION)
end