gitlab-org--gitlab-foss/lib/gitlab/instrumentation/global_search_api.rb

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