26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/remnant/base.rb', line 26
def collect
@sample_counter ||= 0
= Remnant::Discover.results.delete(:extra_remnant_key)
if ::Rails.env.production? || ::Rails.env.staging? || ::Rails.env.demo?
if @sample_counter > configuration.sample_rate
key_prefix = [
Remnant.configuration.tag,
Remnant.configuration.env,
].compact.join('.')
Remnant::Discover.results.map do |remnant_key, ms|
Remnant.handler.timing("#{key_prefix}.#{remnant_key}", ms.to_i)
end
Remnant.handler.timing("#{key_prefix}.gc", Remnant::GC.ms.to_i)
Remnant.handler.timing("#{key_prefix}.db", Remnant::Database.total_time.to_i)
@sample_counter = 0
else
@sample_counter += 1
end
else
Rails.logger.info "#{color(false, true)}--------------Remnants Discovered--------------#{color(true)}"
Remnant::Discover.results.map do |remnant_key, ms|
key = [
,
remnant_key
].compact.join('.')
Rails.logger.info "#{Remnant.color}#{ms.to_i}ms#{Remnant.color(true)}\t#{key}"
end
Rails.logger.info "#{Remnant.color}#{Remnant::GC.time.to_i}ms (#{Remnant::GC.collections} collections)#{Remnant.color(true)}\tGC"
Rails.logger.info ""
Rails.logger.info("#{color(false, true)}----- Filters (%.2fms) -----#{color(true)}" % Remnant::Filters.total_time)
Remnant::Filters.filters.map do |filter|
Rails.logger.info("#{color}%.2fms#{color(true)}\t#{filter[:name]} (#{filter[:type]})" % filter[:ms])
end
if Remnant::Template.enabled?
Rails.logger.info ""
Rails.logger.info "#{color(false, true)}----- Templates -----#{color(true)}"
Remnant::Template.trace.root.children.map do |rendering|
Remnant::Template.trace.log(Rails.logger, rendering)
end
end
Rails.logger.info ""
Rails.logger.info("#{color(false, true)}---- Database (%.2fms) -----#{color(true)}" % Remnant::Database.total_time)
if Remnant::Database.suppress?
Rails.logger.info "queries suppressed in development mode"
else
Remnant::Database.queries.map do |query|
Rails.logger.info("#{color}%.2fms#{color(true)}\t#{query.sql}" % (query.time * 1000))
end
end
Rails.logger.info "#{color(false, true)}-----------------------------------------------#{color(true)}"
end
unless Remnant.configuration.custom_hook.nil?
Remnant.configuration.custom_hook.call(Remnant::Discover.results)
end
Remnant::Database.reset
Remnant::Template.reset
Remnant::Filters.reset
Remnant::Discover.results.clear
end
|