Sha256: 3320bae3dbb6a0e1cea62492ae08547e59c3248149c004e7e5b1ceca37b72b7d

Contents?: true

Size: 1009 Bytes

Versions: 1

Compression:

Stored size: 1009 Bytes

Contents

module RailsPerformance
  module Reports
    class ResponseTimeReport < BaseReport
      def set_defaults
        @group ||= :datetime
      end

      def data
        all     = {}
        stop    = Time.at(60 * (Time.now.to_i / 60))
        current = stop - RailsPerformance.duration
        @data   = []
        offset  = Time.current.utc_offset

        # puts "current: #{current}"
        # puts "stop: #{stop}"

        # read current values
        db.group_by(group).values.each do |(k, v)|
          durations = v.collect{|e| e["duration"]}.compact
          next if durations.empty?
          all[k] = durations.sum.to_f / durations.count
        end

        # add blank columns
        while current <= stop
          views = all[current.strftime(MetricsCollector::FORMAT)] || 0
          @data << [(current.to_i + offset) * 1000, views.round(2)]
          current += 1.minute
        end

        # sort by time
        @data.sort!
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_performance-0.0.1.4 lib/rails_performance/reports/response_time_report.rb