eye 0.9.4.nosigar → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/eye.gemspec +1 -0
- data/lib/eye.rb +2 -1
- data/lib/eye/controller.rb +1 -0
- data/lib/eye/controller/status.rb +1 -1
- data/lib/eye/loader.rb +1 -0
- data/lib/eye/process/config.rb +1 -1
- data/lib/eye/sigar.rb +5 -0
- data/lib/eye/system.rb +0 -20
- data/lib/eye/system_resources.rb +30 -28
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35cc6bba50b6fad896ce85be9e77748360b114bd
|
4
|
+
data.tar.gz: 5bae6b094692d2583f6c293524759a8bbb6f1dae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c648607f310d2e23e465afa8d8577df33b7a0164db5fac37d917760cca5d32f2a9bed155aeedb9714f04fdcb6ad95819c6990477903585e9abf9dd57ece71697
|
7
|
+
data.tar.gz: 1236360a7fa6340dde581085e750cbdfb5254efda2738a612f3028b6131585c16edd916b050689879ce5f277180c831f79e04d0654068705f9e09866c200daa2
|
data/eye.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |gem|
|
|
23
23
|
gem.add_dependency 'celluloid-io', '~> 0.17.0'
|
24
24
|
gem.add_dependency 'state_machines'
|
25
25
|
gem.add_dependency 'thor'
|
26
|
+
gem.add_dependency 'sigar', '~> 0.7.3'
|
26
27
|
|
27
28
|
gem.add_development_dependency 'rake'
|
28
29
|
gem.add_development_dependency 'rspec', '< 2.14'
|
data/lib/eye.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Eye
|
2
|
-
VERSION = '0.9.4
|
2
|
+
VERSION = '0.9.4'
|
3
3
|
ABOUT = "Eye v#{VERSION} (c) 2012-2017 @kostya"
|
4
4
|
PROCLINE = "eye monitoring v#{VERSION}"
|
5
5
|
|
@@ -19,6 +19,7 @@ module Eye
|
|
19
19
|
autoload :Utils, 'eye/utils'
|
20
20
|
autoload :Notify, 'eye/notify'
|
21
21
|
autoload :Config, 'eye/config'
|
22
|
+
autoload :Sigar, 'eye/sigar'
|
22
23
|
autoload :Controller, 'eye/controller'
|
23
24
|
autoload :Control, 'eye/control'
|
24
25
|
autoload :Cli, 'eye/cli'
|
data/lib/eye/controller.rb
CHANGED
@@ -9,7 +9,7 @@ module Eye::Controller::Status
|
|
9
9
|
about: Eye::ABOUT,
|
10
10
|
resources: Eye::SystemResources.resources($$),
|
11
11
|
ruby: RUBY_DESCRIPTION,
|
12
|
-
gems: %w[Celluloid Celluloid::IO StateMachines NIO Timers].map { |c| gem_version(c) },
|
12
|
+
gems: %w[Celluloid Celluloid::IO StateMachines NIO Timers Sigar].map { |c| gem_version(c) },
|
13
13
|
logger: Eye::Logger.args.present? ? [Eye::Logger.dev.to_s, *Eye::Logger.args] : Eye::Logger.dev.to_s,
|
14
14
|
home: Eye::Local.home,
|
15
15
|
dir: Eye::Local.dir,
|
data/lib/eye/loader.rb
CHANGED
data/lib/eye/process/config.rb
CHANGED
data/lib/eye/sigar.rb
ADDED
data/lib/eye/system.rb
CHANGED
@@ -140,26 +140,6 @@ module Eye::System
|
|
140
140
|
env
|
141
141
|
end
|
142
142
|
|
143
|
-
PS_AUX_CMD = if RUBY_PLATFORM.include?('darwin')
|
144
|
-
'ps axo pid,ppid,pcpu,rss,start'
|
145
|
-
else
|
146
|
-
'ps axo pid,ppid,pcpu,rss,start_time'
|
147
|
-
end
|
148
|
-
|
149
|
-
# get table
|
150
|
-
# {pid => {:rss =>, :cpu =>, :ppid => , :start_time => }}
|
151
|
-
# slow
|
152
|
-
def ps_aux
|
153
|
-
str = Process.send('`', PS_AUX_CMD).force_encoding('binary')
|
154
|
-
h = {}
|
155
|
-
str.each_line do |line|
|
156
|
-
chunk = line.strip.split(%r[\s+])
|
157
|
-
h[chunk[0].to_i] = { ppid: chunk[1].to_i, cpu: chunk[2].to_i,
|
158
|
-
rss: chunk[3].to_i, start_time: chunk[4] }
|
159
|
-
end
|
160
|
-
h
|
161
|
-
end
|
162
|
-
|
163
143
|
end
|
164
144
|
|
165
145
|
end
|
data/lib/eye/system_resources.rb
CHANGED
@@ -7,34 +7,39 @@ class Eye::SystemResources
|
|
7
7
|
|
8
8
|
def memory(pid)
|
9
9
|
if mem = cache.proc_mem(pid)
|
10
|
-
mem
|
10
|
+
mem.resident
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def cpu(pid)
|
15
|
-
cache.proc_cpu(pid)
|
15
|
+
if cpu = cache.proc_cpu(pid)
|
16
|
+
cpu.percent * 100
|
17
|
+
end
|
16
18
|
end
|
17
19
|
|
18
20
|
def children(parent_pid)
|
19
21
|
cache.children(parent_pid)
|
20
22
|
end
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
24
|
+
# unixtime
|
25
|
+
def start_time(pid)
|
26
|
+
if cpu = cache.proc_cpu(pid)
|
27
|
+
cpu.start_time.to_i / 1000
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
28
31
|
# total cpu usage in seconds
|
29
|
-
def cputime(
|
30
|
-
|
32
|
+
def cputime(pid)
|
33
|
+
if cpu = cache.proc_cpu(pid)
|
34
|
+
cpu.total.to_f / 1000
|
35
|
+
end
|
31
36
|
end
|
32
37
|
|
33
38
|
# last child in a children tree
|
34
39
|
def leaf_child(pid)
|
35
40
|
if dc = deep_children(pid)
|
36
41
|
dc.detect do |child|
|
37
|
-
args = ''
|
42
|
+
args = Eye::Sigar.proc_args(child)[0] rescue ''
|
38
43
|
!args.start_with?('logger') && child != pid
|
39
44
|
end
|
40
45
|
end
|
@@ -53,8 +58,8 @@ class Eye::SystemResources
|
|
53
58
|
end
|
54
59
|
end
|
55
60
|
|
56
|
-
def args(
|
57
|
-
'-'
|
61
|
+
def args(pid)
|
62
|
+
Eye::Sigar.proc_args(pid).join(' ').strip rescue '-'
|
58
63
|
end
|
59
64
|
|
60
65
|
def resources(pid)
|
@@ -88,34 +93,31 @@ class Eye::SystemResources
|
|
88
93
|
end
|
89
94
|
|
90
95
|
def clear
|
91
|
-
@
|
96
|
+
@memory = {}
|
97
|
+
@cpu = {}
|
98
|
+
@ppids = {}
|
92
99
|
end
|
93
100
|
|
94
101
|
def proc_mem(pid)
|
95
|
-
|
102
|
+
@memory[pid] ||= Eye::Sigar.proc_mem(pid) if pid
|
103
|
+
|
104
|
+
rescue ArgumentError
|
105
|
+
# when incorrect PID, just skip
|
96
106
|
end
|
97
107
|
|
98
108
|
def proc_cpu(pid)
|
99
|
-
|
100
|
-
end
|
109
|
+
@cpu[pid] ||= Eye::Sigar.proc_cpu(pid) if pid
|
101
110
|
|
102
|
-
|
103
|
-
|
111
|
+
rescue ArgumentError
|
112
|
+
# when incorrect PID, just skip
|
104
113
|
end
|
105
114
|
|
106
|
-
def children(
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
childs << pid if h[:ppid] == parent_pid
|
115
|
+
def children(pid)
|
116
|
+
if pid
|
117
|
+
@ppids[pid] ||= Eye::Sigar.proc_list("State.Ppid.eq=#{pid}")
|
118
|
+
else
|
119
|
+
[]
|
112
120
|
end
|
113
|
-
|
114
|
-
childs
|
115
|
-
end
|
116
|
-
|
117
|
-
def ps_aux
|
118
|
-
@ps_aux ||= defer { Eye::System.ps_aux }
|
119
121
|
end
|
120
122
|
|
121
123
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eye
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.4
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Konstantin Makarchev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: celluloid
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sigar
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.7.3
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.7.3
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -420,6 +434,7 @@ files:
|
|
420
434
|
- lib/eye/process/validate.rb
|
421
435
|
- lib/eye/process/watchers.rb
|
422
436
|
- lib/eye/server.rb
|
437
|
+
- lib/eye/sigar.rb
|
423
438
|
- lib/eye/system.rb
|
424
439
|
- lib/eye/system_resources.rb
|
425
440
|
- lib/eye/trigger.rb
|