class Droid::Monitor::Cpu

Attributes

cpu_usage[R]

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Droid::Monitor::Adb::new
# File lib/droid/monitor/cpu.rb, line 16
def initialize(opts = {})
  super(opts)
  @cpu_usage = []
end

Public Instance Methods

clear_cpu_usage() click to toggle source
# File lib/droid/monitor/cpu.rb, line 21
def clear_cpu_usage
  @cpu_usage = []
end
create_graph(data_file_path, graph_opts = {}, output_file_path) click to toggle source

@params [String] data_file_path A path to data. @params [Hash] graph_opts A hash regarding graph settings. @params [String] output_file_path A path you would like to export data.

# File lib/droid/monitor/cpu.rb, line 148
def create_graph(data_file_path, graph_opts = {}, output_file_path) # rubocop:disable Style/OptionalArguments
  save(Droid::Monitor::GoogleApiTemplate.create_graph(data_file_path, graph_opts),
       output_file_path)
end
dump_cpu_usage(dump_data) click to toggle source
# File lib/droid/monitor/cpu.rb, line 25
def dump_cpu_usage(dump_data)
  scanned_dump = dump_data.scan(/^.*#{package}.*$/).map(&:strip).first
  return [] if scanned_dump.nil?

  dump = scanned_dump.split(/\s/).reject(&:empty?)
  raise 'no package' if /^Load:$/ =~ dump[0]

  dump
rescue StandardError => e
  puts e
  []
end
dump_cpu_usage_with_top(dump_data) click to toggle source
# File lib/droid/monitor/cpu.rb, line 38
def dump_cpu_usage_with_top(dump_data)
  return [] if dump_data.nil?

  dump = dump_data.split(/\s/).reject(&:empty?)
  raise 'no package' if /^Load:$/ =~ dump[0]

  dump
rescue StandardError => e
  puts e
  []
end
export_as_google_api_format(from_cpu_usage) click to toggle source
# File lib/droid/monitor/cpu.rb, line 111
def export_as_google_api_format(from_cpu_usage)
  google_api_data_format = empty_google_api_format

  from_cpu_usage.each do |hash|
    a_google_api_data_format = {
      c: [
        { v: hash[:time] },
        { v: hash[:total_cpu].delete('%').to_f },
        { v: hash[:user].delete('%').to_f },
        { v: hash[:kernel].delete('%').to_f }
      ]
    }
    google_api_data_format[:rows].push(a_google_api_data_format)
  end

  JSON.generate google_api_data_format
end
export_as_google_api_format_with_top(from_cpu_usage) click to toggle source
# File lib/droid/monitor/cpu.rb, line 129
def export_as_google_api_format_with_top(from_cpu_usage)
  google_api_data_format = empty_google_api_format_with_top

  from_cpu_usage.each do |hash|
    a_google_api_data_format = {
      c: [
        { v: hash[:time] },
        { v: hash[:total_cpu].delete('%').to_f }
      ]
    }
    google_api_data_format[:rows].push(a_google_api_data_format)
  end

  JSON.generate google_api_data_format
end
save_cpu_usage_as_google_api(file_path) click to toggle source
# File lib/droid/monitor/cpu.rb, line 59
def save_cpu_usage_as_google_api(file_path)
  save(export_as_google_api_format(@cpu_usage), file_path)
end
save_cpu_usage_as_google_api_with_top(file_path) click to toggle source
# File lib/droid/monitor/cpu.rb, line 63
def save_cpu_usage_as_google_api_with_top(file_path)
  save(export_as_google_api_format_with_top(@cpu_usage), file_path)
end
store_cpu_usage(dumped_cpu) click to toggle source
# File lib/droid/monitor/cpu.rb, line 67
def store_cpu_usage(dumped_cpu)
  @cpu_usage.push merge_current_time(transfer_total_cpu_to_hash(dumped_cpu))
end
store_cpu_usage_with_top(dumped_cpu) click to toggle source
# File lib/droid/monitor/cpu.rb, line 71
def store_cpu_usage_with_top(dumped_cpu)
  @cpu_usage.push merge_current_time(transfer_total_cpu_with_top_to_hash(dumped_cpu))
end
store_dumped_cpu_usage() click to toggle source

called directory

# File lib/droid/monitor/cpu.rb, line 51
def store_dumped_cpu_usage
  store_cpu_usage(dump_cpu_usage(dump_cpuinfo))
end
store_dumped_cpu_usage_with_top() click to toggle source
# File lib/droid/monitor/cpu.rb, line 55
def store_dumped_cpu_usage_with_top
  store_cpu_usage_with_top(dump_cpu_usage_with_top(dump_cpuinfo_with_top))
end
transfer_total_cpu_to_hash(dump_cpu_array) click to toggle source
# File lib/droid/monitor/cpu.rb, line 75
def transfer_total_cpu_to_hash(dump_cpu_array)
  if dump_cpu_array.length <= 1
    {
      total_cpu: '0%',
      process: 'no package process',
      user: '0%',
      kernel: '0%',
      time: dump_cpu_array.last
    }
  else
    {
      total_cpu: dump_cpu_array[0],
      process: dump_cpu_array[1],
      user: dump_cpu_array[2],
      kernel: dump_cpu_array[5],
      time: dump_cpu_array.last
    }
  end
end
transfer_total_cpu_with_top_to_hash(dump_cpu_array) click to toggle source
# File lib/droid/monitor/cpu.rb, line 95
def transfer_total_cpu_with_top_to_hash(dump_cpu_array)
  if dump_cpu_array.length <= 1
    {
      total_cpu: '0%',
      process: 'no package process',
      time: dump_cpu_array.last
    }
  else
    {
      total_cpu: dump_cpu_array[2],
      process: dump_cpu_array[0],
      time: dump_cpu_array.last
    }
  end
end

Private Instance Methods

empty_google_api_format() click to toggle source
# File lib/droid/monitor/cpu.rb, line 155
def empty_google_api_format
  {
    cols: [
      { label: 'time', type: 'string' },
      { label: 'total_cpu', type: 'number' },
      { label: 'user', type: 'number' },
      { label: 'kernel', type: 'number' }
    ],
    rows: []
  }
end
empty_google_api_format_with_top() click to toggle source
# File lib/droid/monitor/cpu.rb, line 167
def empty_google_api_format_with_top
  {
    cols: [
      { label: 'time', type: 'string' },
      { label: 'total_cpu', type: 'number' }
    ],
    rows: []
  }
end