Module: Praxis::Plugins::PraxisMapperPlugin::Statistics
- Defined in:
- lib/praxis/plugins/praxis_mapper_plugin.rb
Class Method Summary collapse
- .detailed(identity_map) ⇒ Object
- .log(request, identity_map, log_stats) ⇒ Object
- .round_fields_at(values, indices) ⇒ Object
- .short(identity_map) ⇒ Object
- .to_logger(message) ⇒ Object
Class Method Details
.detailed(identity_map) ⇒ Object
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 192 def self.detailed(identity_map) stats_by_model = identity_map.query_statistics.sum_totals_by_model stats_total = identity_map.query_statistics.sum_totals fields = [ :query_count, :records_loaded, :datastore_interactions, :datastore_interaction_time] rows = [] total_models_loaded = 0 # stats per model stats_by_model.each do |model, totals| total_values = totals.values_at(*fields) self.round_fields_at( total_values , [fields.index(:datastore_interaction_time)]) row = [ model ] + total_values models_loaded = identity_map.all(model).size total_models_loaded += models_loaded row << models_loaded rows << row end rows << :separator # totals for all models stats_total_values = stats_total.values_at(*fields) self.round_fields_at(stats_total_values , [fields.index(:datastore_interaction_time)]) rows << [ "All Models" ] + stats_total_values + [total_models_loaded] table = Terminal::Table.new \ :rows => rows, :title => "Praxis::Mapper Statistics", :headings => [ "Model", "# Queries", "Records Loaded", "Interactions", "Time(sec)", "Models Loaded" ] table.align_column(1, :right) table.align_column(2, :right) table.align_column(3, :right) table.align_column(4, :right) table.align_column(5, :right) self.to_logger "\n#{table.to_s}" end |
.log(request, identity_map, log_stats) ⇒ Object
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 173 def self.log(request, identity_map, log_stats) return if identity_map.nil? return if request.silence_mapper_stats == true if identity_map.queries.empty? self.to_logger "No database interactions observed." return end case log_stats when 'detailed' self.detailed(identity_map) when 'short' self.short(identity_map) when 'skip' # Shouldn't receive this. But anyway...no-op. end end |
.round_fields_at(values, indices) ⇒ Object
230 231 232 233 234 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 230 def self.round_fields_at(values, indices) indices.each do |idx| values[idx] = "%.3f" % values[idx] end end |
.short(identity_map) ⇒ Object
236 237 238 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 236 def self.short(identity_map) self.to_logger identity_map.query_statistics.sum_totals.to_s end |
.to_logger(message) ⇒ Object
240 241 242 |
# File 'lib/praxis/plugins/praxis_mapper_plugin.rb', line 240 def self.to_logger() Praxis::Application.instance.logger.__send__(Plugin.instance.config.stats_log_level, "Praxis::Mapper Statistics: #{}") end |