Class: DiskIO

Inherits:
ApplicationModel show all
Defined in:
app/models/disk_io.rb

Class Method Summary collapse

Methods inherited from ApplicationModel

group_format

Class Method Details

.average_io(start_time, minutes) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/disk_io.rb', line 4

def self.average_io(start_time, minutes)
  data = where(created_at: start_time..)
    .group_by_time(minutes)
    .pluck(
      Arel.sql("datetime(#{group_format(minutes)}, 'unixepoch') as period"),
      Arel.sql("ROUND(AVG(read_mb_per_sec), 2) as avg_read"),
      Arel.sql("ROUND(AVG(write_mb_per_sec), 2) as avg_write")
    )

  read = data.to_h { |period, read, _| [period, read] }
  write = data.to_h { |period, _, write| [period, write] }
  [
    {name: "Read MB/s", data: read},
    {name: "Write MB/s", data: write}
  ]
end