33 lines
854 B
Ruby
33 lines
854 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Instrumentation
|
||
|
class Uploads
|
||
|
UPLOAD_DURATION = :uploaded_file_upload_duration_s
|
||
|
UPLOADED_FILE_SIZE = :uploaded_file_size_bytes
|
||
|
|
||
|
def self.track(uploaded_file)
|
||
|
if ::Gitlab::SafeRequestStore.active?
|
||
|
::Gitlab::SafeRequestStore[UPLOAD_DURATION] = uploaded_file.upload_duration
|
||
|
::Gitlab::SafeRequestStore[UPLOADED_FILE_SIZE] = uploaded_file.size
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.get_upload_duration
|
||
|
::Gitlab::SafeRequestStore[UPLOAD_DURATION]
|
||
|
end
|
||
|
|
||
|
def self.get_uploaded_file_size
|
||
|
::Gitlab::SafeRequestStore[UPLOADED_FILE_SIZE]
|
||
|
end
|
||
|
|
||
|
def self.payload
|
||
|
{
|
||
|
UPLOAD_DURATION => get_upload_duration,
|
||
|
UPLOADED_FILE_SIZE => get_uploaded_file_size
|
||
|
}.compact
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|