f93f8f569d
Enables frozen string for the following: * lib/gitlab/patch/**/*.rb * lib/gitlab/popen/**/*.rb * lib/gitlab/profiler/**/*.rb * lib/gitlab/project_authorizations/**/*.rb * lib/gitlab/prometheus/**/*.rb * lib/gitlab/query_limiting/**/*.rb * lib/gitlab/quick_actions/**/*.rb * lib/gitlab/redis/**/*.rb * lib/gitlab/request_profiler/**/*.rb * lib/gitlab/search/**/*.rb * lib/gitlab/sherlock/**/*.rb * lib/gitlab/sidekiq_middleware/**/*.rb * lib/gitlab/slash_commands/**/*.rb * lib/gitlab/sql/**/*.rb * lib/gitlab/template/**/*.rb * lib/gitlab/testing/**/*.rb * lib/gitlab/utils/**/*.rb * lib/gitlab/webpack/**/*.rb Partially addresses gitlab-org/gitlab-ce#47424.
38 lines
1,006 B
Ruby
38 lines
1,006 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Sherlock
|
|
class LineSample
|
|
attr_reader :duration, :events
|
|
|
|
# duration - The execution time in milliseconds.
|
|
# events - The amount of events.
|
|
def initialize(duration, events)
|
|
@duration = duration
|
|
@events = events
|
|
end
|
|
|
|
# Returns the sample duration percentage relative to the given duration.
|
|
#
|
|
# Example:
|
|
#
|
|
# sample.duration # => 150
|
|
# sample.percentage_of(1500) # => 10.0
|
|
#
|
|
# total_duration - The total duration to compare with.
|
|
#
|
|
# Returns a float
|
|
def percentage_of(total_duration)
|
|
(duration.to_f / total_duration) * 100.0
|
|
end
|
|
|
|
# Returns true if the current sample takes up the majority of the given
|
|
# duration.
|
|
#
|
|
# total_duration - The total duration to compare with.
|
|
def majority_of?(total_duration)
|
|
percentage_of(total_duration) >= 30
|
|
end
|
|
end
|
|
end
|
|
end
|