pi-sys 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pi-sys.rb +3 -1
- data/lib/pi-sys/stats/cpu.rb +9 -5
- data/lib/pi-sys/stats/deluge.rb +32 -0
- data/lib/pi-sys/stats/disk.rb +13 -7
- data/lib/pi-sys/stats/memory.rb +30 -17
- data/lib/pi-sys/stats/uptime.rb +15 -11
- data/lib/pi-sys/stats/vcgencmd.rb +8 -2
- data/lib/pi-sys/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46b112b42f371da35306d1290c0df6f53131abc3
|
4
|
+
data.tar.gz: c3cbd134adfdd906b581616f59bc4ae0ff35b68c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82a7a0a3d294bdbc8b5d33a6f58f52d7516349abcfff72137ed7080e9740dce02b1b4109a902d3fb9f7b546d8d136c67dd28efd7120b19e18ded3f3b0e8ad0ef
|
7
|
+
data.tar.gz: 39e5b3e09d5bf263488c44a55ea5d3f5631ef134e644f5c8de4edce1d9689a89ed5beffe2cfa25d41d4f3c2c519dd828b099c4f56c7781059eed04a100844337
|
data/lib/pi-sys.rb
CHANGED
@@ -12,10 +12,12 @@ require 'lib/pi-sys/stats/temperature'
|
|
12
12
|
require 'lib/pi-sys/stats/uptime'
|
13
13
|
require 'lib/pi-sys/stats/voltage'
|
14
14
|
require 'lib/pi-sys/stats/bandwidth'
|
15
|
+
require 'lib/pi-sys/stats/deluge'
|
15
16
|
|
16
17
|
module PiSys
|
17
18
|
STATS = {}
|
18
|
-
MODULES = [:cpu, :disk, :memory, :clock, :voltage, :temperature,
|
19
|
+
MODULES = [:cpu, :disk, :memory, :clock, :voltage, :temperature,
|
20
|
+
:codec, :config, :uptime, :bandwidth, :deluge].map { |mod|
|
19
21
|
{mod => const_get(mod.to_s.capitalize).new}
|
20
22
|
}.reduce({}, :merge)
|
21
23
|
|
data/lib/pi-sys/stats/cpu.rb
CHANGED
@@ -13,12 +13,16 @@ module PiSys
|
|
13
13
|
|
14
14
|
output = run_command 'pidstat -h'
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
if output
|
17
|
+
to_hash(KEY, output, 3) do |data|
|
18
|
+
name = data[7]
|
19
|
+
{name => {user: data[2].to_f, system: data[3].to_f, guest: data[4].to_f, total: data[5].to_f}}
|
20
|
+
end
|
20
21
|
|
21
|
-
|
22
|
+
Hash[STATS[KEY].sort_by{|_, v| -v[:total]}]
|
23
|
+
else
|
24
|
+
STATS[KEY]
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module PiSys
|
2
|
+
class Deluge < Stats
|
3
|
+
|
4
|
+
KEY = :deluge
|
5
|
+
VARIATIONS = nil
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
super(KEY, VARIATIONS)
|
9
|
+
end
|
10
|
+
|
11
|
+
def fetch
|
12
|
+
STATS[KEY] = []
|
13
|
+
|
14
|
+
output = run_command 'deluge-console info'
|
15
|
+
|
16
|
+
if output
|
17
|
+
hash = {}
|
18
|
+
output.strip.split("\n")[0..-1].each do |data_line|
|
19
|
+
if data_line.empty?
|
20
|
+
STATS[KEY] << hash
|
21
|
+
hash = {}
|
22
|
+
else
|
23
|
+
data = data_line.split(':')
|
24
|
+
hash[data[0].downcase] = data[1..-1].join.strip
|
25
|
+
end
|
26
|
+
end
|
27
|
+
STATS[KEY] << hash
|
28
|
+
end
|
29
|
+
STATS[KEY]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/pi-sys/stats/disk.rb
CHANGED
@@ -12,18 +12,24 @@ module PiSys
|
|
12
12
|
super
|
13
13
|
|
14
14
|
output = fetch_io
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
if output
|
16
|
+
to_hash([KEY, :io], output, 3) do |data|
|
17
|
+
name = data[5]
|
18
|
+
{name => {read: data[2], write: data[3]}}
|
19
|
+
end
|
18
20
|
end
|
19
21
|
|
20
22
|
output = fetch_usage
|
21
|
-
|
22
|
-
|
23
|
-
|
23
|
+
|
24
|
+
if output
|
25
|
+
to_hash([KEY, :usage], output, 1) do |data|
|
26
|
+
name = data[0]
|
27
|
+
{name => {used: data[2], available: data[3].to_i, percentage: data[4].to_i, mounted_on: data[5]}}
|
28
|
+
end
|
29
|
+
|
30
|
+
STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v[:percentage] }]
|
24
31
|
end
|
25
32
|
|
26
|
-
STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v[:percentage] }]
|
27
33
|
STATS[KEY]
|
28
34
|
end
|
29
35
|
|
data/lib/pi-sys/stats/memory.rb
CHANGED
@@ -15,31 +15,44 @@ module PiSys
|
|
15
15
|
|
16
16
|
# status
|
17
17
|
output = fetch_status
|
18
|
-
output
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
if output
|
19
|
+
output.gsub!(/ kB$/, '').gsub(/\: */, ' ')
|
20
|
+
to_hash([KEY, :status], output) do |data|
|
21
|
+
{data[0].gsub(':','') => data[1].to_i / 1024}
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
24
|
+
STATS[KEY][:status]['MemUsed'] = STATS[KEY][:status]['MemTotal'] - STATS[KEY][:status]['MemFree'] -
|
25
|
+
STATS[KEY][:status]['Buffers'] - STATS[KEY][:status]['Cached']
|
26
|
+
else
|
27
|
+
STATS[KEY][:status] = {}
|
28
|
+
end
|
25
29
|
|
26
30
|
# info
|
27
|
-
|
31
|
+
output = @vcgencmd.fetch
|
32
|
+
if output
|
33
|
+
STATS[KEY][:info] = @vcgencmd.fetch
|
34
|
+
else
|
35
|
+
STATS[KEY][:info] = {}
|
36
|
+
end
|
28
37
|
|
29
38
|
# usage
|
30
39
|
output = fetch_usage
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
STATS[KEY][:usage][name]
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
if output
|
41
|
+
to_hash([KEY, :usage], output, 1) do |data|
|
42
|
+
name = data[0]
|
43
|
+
value = data[1].to_i / 1024
|
44
|
+
if STATS[KEY][:usage][name]
|
45
|
+
STATS[KEY][:usage][name] += value
|
46
|
+
{}
|
47
|
+
else
|
48
|
+
{name => value}
|
49
|
+
end
|
39
50
|
end
|
40
|
-
end
|
41
51
|
|
42
|
-
|
52
|
+
STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v }]
|
53
|
+
else
|
54
|
+
STATS[KEY][:usage] = {}
|
55
|
+
end
|
43
56
|
STATS[KEY]
|
44
57
|
end
|
45
58
|
|
data/lib/pi-sys/stats/uptime.rb
CHANGED
@@ -13,19 +13,23 @@ module PiSys
|
|
13
13
|
|
14
14
|
output = run_command 'uptime'
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
if output
|
17
|
+
to_hash(KEY, output) do |data|
|
18
|
+
index_of_reference = data.index('user,') || data.index('users,')
|
19
|
+
{
|
20
|
+
time: data[0],
|
21
|
+
up: data[2..index_of_reference-2].join(' ').gsub(/(,$)/i,''),
|
22
|
+
users: data[index_of_reference-1],
|
23
|
+
load_average: {
|
24
|
+
one: data[data.length-3].gsub(',',''),
|
25
|
+
five: data[data.length-2].gsub(',',''),
|
26
|
+
fiftheen: data[data.length-1].gsub(',','')
|
27
|
+
}
|
26
28
|
}
|
27
|
-
|
29
|
+
end
|
28
30
|
end
|
31
|
+
|
32
|
+
STATS[KEY]
|
29
33
|
end
|
30
34
|
end
|
31
35
|
end
|
@@ -21,12 +21,18 @@ module PiSys
|
|
21
21
|
hash ||= {}
|
22
22
|
COMMANDS[command].each do |option|
|
23
23
|
output = run_command(command, option)
|
24
|
-
|
24
|
+
if output
|
25
|
+
hash[option] = Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
|
26
|
+
end
|
25
27
|
end
|
26
28
|
hash
|
27
29
|
else
|
28
30
|
output = run_command(command)
|
29
|
-
|
31
|
+
if output
|
32
|
+
Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
|
33
|
+
else
|
34
|
+
{}
|
35
|
+
end
|
30
36
|
end
|
31
37
|
end
|
32
38
|
end
|
data/lib/pi-sys/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pi-sys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- José Airosa
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- lib/pi-sys/stats/codec.rb
|
78
78
|
- lib/pi-sys/stats/config.rb
|
79
79
|
- lib/pi-sys/stats/cpu.rb
|
80
|
+
- lib/pi-sys/stats/deluge.rb
|
80
81
|
- lib/pi-sys/stats/disk.rb
|
81
82
|
- lib/pi-sys/stats/memory.rb
|
82
83
|
- lib/pi-sys/stats/temperature.rb
|
@@ -88,8 +89,9 @@ files:
|
|
88
89
|
- lib/pi-sys.rb
|
89
90
|
- LICENSE
|
90
91
|
- README.md
|
91
|
-
homepage:
|
92
|
-
licenses:
|
92
|
+
homepage: https://github.com/joseairosa/pi-sys
|
93
|
+
licenses:
|
94
|
+
- LICENSE
|
93
95
|
metadata: {}
|
94
96
|
post_install_message:
|
95
97
|
rdoc_options: []
|