46 lines
1.1 KiB
Ruby
46 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
|