Class: Bandwidth

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

Class Method Summary collapse

Methods inherited from ApplicationModel

group_format

Class Method Details

.average_usage(start_time, minutes) ⇒ Object



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

def self.average_usage(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(incoming_mbps), 2) as avg_incoming"),
      Arel.sql("ROUND(AVG(outgoing_mbps), 2) as avg_outgoing")
    )

  incoming = data.to_h { |period, incoming, _| [period, incoming] }
  outgoing = data.to_h { |period, _, outgoing| [period, outgoing] }
  [
    {name: "Incoming Mbps", data: incoming},
    {name: "Outgoing Mbps", data: outgoing}
  ]
end