eye 0.9.3 → 0.9.4.nosigar
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/CHANGES.md +4 -0
- data/eye.gemspec +0 -1
- data/lib/eye.rb +1 -2
- data/lib/eye/controller.rb +0 -1
- data/lib/eye/controller/status.rb +1 -1
- data/lib/eye/loader.rb +0 -1
- data/lib/eye/local.rb +5 -1
- data/lib/eye/process/config.rb +1 -1
- data/lib/eye/system.rb +20 -0
- data/lib/eye/system_resources.rb +28 -30
- metadata +2 -17
- data/lib/eye/sigar.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df5b3035c5e2270e4314cf21f764d22b5f429221
|
4
|
+
data.tar.gz: 3385f97cff38b17f9f93e629b0c7dc94b05ad770
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fae4a420a72fcf37f906fe028313a77d5737b4050038db9e72eb76cc695f62001cc9a7fc6fa7f2631d9b9bb6abcdaca2a72bc6183d26b3451bb4afcbd03f28ca
|
7
|
+
data.tar.gz: e330bca5888e30957800455ace776f760154cf0e6388e48e380bb4b87af85a435cb0a00aca068e3740a0d4e71a679c838845fb6a68ea74f5155e99edfe243290
|
data/CHANGES.md
CHANGED
data/eye.gemspec
CHANGED
@@ -23,7 +23,6 @@ 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'
|
27
26
|
|
28
27
|
gem.add_development_dependency 'rake'
|
29
28
|
gem.add_development_dependency 'rspec', '< 2.14'
|
data/lib/eye.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Eye
|
2
|
-
VERSION = '0.9.
|
2
|
+
VERSION = '0.9.4.nosigar'
|
3
3
|
ABOUT = "Eye v#{VERSION} (c) 2012-2017 @kostya"
|
4
4
|
PROCLINE = "eye monitoring v#{VERSION}"
|
5
5
|
|
@@ -19,7 +19,6 @@ 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'
|
23
22
|
autoload :Controller, 'eye/controller'
|
24
23
|
autoload :Control, 'eye/control'
|
25
24
|
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
|
12
|
+
gems: %w[Celluloid Celluloid::IO StateMachines NIO Timers].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/local.rb
CHANGED
@@ -7,7 +7,11 @@ module Eye::Local
|
|
7
7
|
def dir
|
8
8
|
@dir ||= begin
|
9
9
|
if root?
|
10
|
-
'
|
10
|
+
if (_home = ENV['EYE_HOME']) && !_home.empty?
|
11
|
+
File.expand_path(File.join(_home, '.eye'))
|
12
|
+
else
|
13
|
+
'/var/run/eye'
|
14
|
+
end
|
11
15
|
else
|
12
16
|
File.expand_path(File.join(home, '.eye'))
|
13
17
|
end
|
data/lib/eye/process/config.rb
CHANGED
data/lib/eye/system.rb
CHANGED
@@ -140,6 +140,26 @@ 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
|
+
|
143
163
|
end
|
144
164
|
|
145
165
|
end
|
data/lib/eye/system_resources.rb
CHANGED
@@ -7,39 +7,34 @@ class Eye::SystemResources
|
|
7
7
|
|
8
8
|
def memory(pid)
|
9
9
|
if mem = cache.proc_mem(pid)
|
10
|
-
mem
|
10
|
+
mem * 1024
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def cpu(pid)
|
15
|
-
|
16
|
-
cpu.percent * 100
|
17
|
-
end
|
15
|
+
cache.proc_cpu(pid)
|
18
16
|
end
|
19
17
|
|
20
18
|
def children(parent_pid)
|
21
19
|
cache.children(parent_pid)
|
22
20
|
end
|
23
21
|
|
24
|
-
# unixtime
|
25
|
-
|
26
|
-
|
27
|
-
cpu.start_time.to_i / 1000
|
22
|
+
def start_time(pid) # unixtime
|
23
|
+
if st = cache.proc_start_time(pid)
|
24
|
+
Time.parse(st).to_i rescue 0
|
28
25
|
end
|
29
26
|
end
|
30
27
|
|
31
28
|
# total cpu usage in seconds
|
32
|
-
def cputime(
|
33
|
-
|
34
|
-
cpu.total.to_f / 1000
|
35
|
-
end
|
29
|
+
def cputime(_pid)
|
30
|
+
0
|
36
31
|
end
|
37
32
|
|
38
33
|
# last child in a children tree
|
39
34
|
def leaf_child(pid)
|
40
35
|
if dc = deep_children(pid)
|
41
36
|
dc.detect do |child|
|
42
|
-
args =
|
37
|
+
args = ''
|
43
38
|
!args.start_with?('logger') && child != pid
|
44
39
|
end
|
45
40
|
end
|
@@ -58,8 +53,8 @@ class Eye::SystemResources
|
|
58
53
|
end
|
59
54
|
end
|
60
55
|
|
61
|
-
def args(
|
62
|
-
|
56
|
+
def args(_pid)
|
57
|
+
'-'
|
63
58
|
end
|
64
59
|
|
65
60
|
def resources(pid)
|
@@ -93,31 +88,34 @@ class Eye::SystemResources
|
|
93
88
|
end
|
94
89
|
|
95
90
|
def clear
|
96
|
-
@
|
97
|
-
@cpu = {}
|
98
|
-
@ppids = {}
|
91
|
+
@ps_aux = nil
|
99
92
|
end
|
100
93
|
|
101
94
|
def proc_mem(pid)
|
102
|
-
|
103
|
-
|
104
|
-
rescue ArgumentError
|
105
|
-
# when incorrect PID, just skip
|
95
|
+
ps_aux[pid].try :[], :rss
|
106
96
|
end
|
107
97
|
|
108
98
|
def proc_cpu(pid)
|
109
|
-
|
99
|
+
ps_aux[pid].try :[], :cpu
|
100
|
+
end
|
110
101
|
|
111
|
-
|
112
|
-
|
102
|
+
def proc_start_time(pid)
|
103
|
+
ps_aux[pid].try :[], :start_time
|
113
104
|
end
|
114
105
|
|
115
|
-
def children(
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
106
|
+
def children(parent_pid)
|
107
|
+
parent_pid = parent_pid.to_i
|
108
|
+
|
109
|
+
childs = []
|
110
|
+
ps_aux.each do |pid, h|
|
111
|
+
childs << pid if h[:ppid] == parent_pid
|
120
112
|
end
|
113
|
+
|
114
|
+
childs
|
115
|
+
end
|
116
|
+
|
117
|
+
def ps_aux
|
118
|
+
@ps_aux ||= defer { Eye::System.ps_aux }
|
121
119
|
end
|
122
120
|
|
123
121
|
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
|
+
version: 0.9.4.nosigar
|
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: 2018-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: celluloid
|
@@ -66,20 +66,6 @@ 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
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rake
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -434,7 +420,6 @@ files:
|
|
434
420
|
- lib/eye/process/validate.rb
|
435
421
|
- lib/eye/process/watchers.rb
|
436
422
|
- lib/eye/server.rb
|
437
|
-
- lib/eye/sigar.rb
|
438
423
|
- lib/eye/system.rb
|
439
424
|
- lib/eye/system_resources.rb
|
440
425
|
- lib/eye/trigger.rb
|