Project

General

Profile

« Previous | Next » 

Revision c30fd6f2

Added by Lukas Zapletal almost 6 years ago

Fixes #23808 - monotonic timer to measure durations

View differences:

app/services/report_importer.rb
class ReportImporter
include Foreman::TelemetryHelper
delegate :logger, :to => :Rails
attr_reader :report, :report_scanners
......
end
def import
start_time = Time.now
logger.debug { "Processing report: #{raw.inspect}" }
create_report_and_logs
telemetry = {}
telemetry_duration_histogram(:report_importer_create, :ms, {type: self.class.name}, telemetry) do
create_report_and_logs
end
if report.persisted?
imported_time = Time.now
host.refresh_statuses(statuses_for_refresh)
refreshed_time = Time.now
logger.info("Imported report for #{name} in #{(imported_time - start_time).round(2)} seconds, status refreshed in #{(refreshed_time - imported_time).round(2)} seconds")
telemetry_duration_histogram(:report_importer_refresh, :ms, {type: self.class.name}, telemetry) do
host.refresh_statuses(statuses_for_refresh)
end
create = telemetry[:report_importer_create].try(:round, 1)
refresh = telemetry[:report_importer_refresh].try(:round, 1)
logger.info("Imported report for #{name} in #{create} ms, status refreshed in #{refresh} ms")
end
end
......
report_scanners.each do |scanner|
break if scanner.scan(report, logs)
end
logger.debug "Changes after scanning: #{report.changes.inspect}"
logger.debug { "Changes after scanning: #{report.changes.inspect}" }
end
private
......
users.select { |user| Host.authorized_as(user, :view_hosts).find(host.id).present? }
owners.concat users
if owners.present?
logger.debug "sending alert to #{owners.map(&:login).join(',')}"
logger.debug { "sending alert to #{owners.map(&:login).join(',')}" }
MailNotification[mail_error_state].deliver(report, :users => owners.uniq)
else
logger.debug "no owner or recipients for alert on #{name}"
logger.debug { "no owner or recipients for alert on #{name}" }
end
end
end

Also available in: Unified diff