103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/perus/server/db.rb', line 103
def self.cleanup
puts 'Cleaning old values and metrics'
keep_hours = Server.options.keep_hours
min_timestamp = Time.now.to_i - (keep_hours * 60 * 60)
values = Value.where("timestamp < #{min_timestamp}")
puts "Deleting #{values.count} values"
values.each(&:destroy)
empty_deleted = 0
file_deleted = 0
Metric.each do |metric|
if metric.file
path = metric.path
if !File.exists?(path) || File.mtime(path).to_i < min_timestamp
metric.destroy
file_deleted += 1
end
elsif metric.values_dataset.empty?
metric.destroy
empty_deleted += 1
end
end
puts "#{empty_deleted} metrics were deleted as they had no values"
puts "#{file_deleted} metrics were deleted as they had old files"
end
|