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