Sha256: 26feeb764e466bfdab76545518956dd3decf37258a0bfb409a2c9227aca1a3b9

Contents?: true

Size: 1002 Bytes

Versions: 2

Compression:

Stored size: 1002 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).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

2 entries across 2 versions & 1 rubygems

Version Path
rails_performance-0.0.1.6 lib/rails_performance/reports/response_time_report.rb
rails_performance-0.0.1.5 lib/rails_performance/reports/response_time_report.rb