47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Instrumentation
|
||
|
class GlobalSearchApi
|
||
|
TYPE = 'meta.search.type'
|
||
|
LEVEL = 'meta.search.level'
|
||
|
SCOPE = 'meta.search.scope'
|
||
|
SEARCH_DURATION_S = :global_search_duration_s
|
||
|
|
||
|
def self.get_type
|
||
|
::Gitlab::SafeRequestStore[TYPE]
|
||
|
end
|
||
|
|
||
|
def self.get_level
|
||
|
::Gitlab::SafeRequestStore[LEVEL]
|
||
|
end
|
||
|
|
||
|
def self.get_scope
|
||
|
::Gitlab::SafeRequestStore[SCOPE]
|
||
|
end
|
||
|
|
||
|
def self.get_search_duration_s
|
||
|
::Gitlab::SafeRequestStore[SEARCH_DURATION_S]
|
||
|
end
|
||
|
|
||
|
def self.payload
|
||
|
{
|
||
|
TYPE => get_type,
|
||
|
LEVEL => get_level,
|
||
|
SCOPE => get_scope,
|
||
|
SEARCH_DURATION_S => get_search_duration_s
|
||
|
}.compact
|
||
|
end
|
||
|
|
||
|
def self.set_information(type:, level:, scope:, search_duration_s:)
|
||
|
if ::Gitlab::SafeRequestStore.active?
|
||
|
::Gitlab::SafeRequestStore[TYPE] = type
|
||
|
::Gitlab::SafeRequestStore[LEVEL] = level
|
||
|
::Gitlab::SafeRequestStore[SCOPE] = scope
|
||
|
::Gitlab::SafeRequestStore[SEARCH_DURATION_S] = search_duration_s
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|