instrumental_tools 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/instrument_server +10 -12
- data/lib/instrumental_tools/version.rb +1 -1
- metadata +85 -52
data/bin/instrument_server
CHANGED
@@ -208,10 +208,10 @@ class SystemInspector
|
|
208
208
|
end
|
209
209
|
|
210
210
|
def self.load_disks
|
211
|
-
{ :gauges =>
|
211
|
+
{ :gauges => disk_storage.merge(disk_io) }
|
212
212
|
end
|
213
213
|
|
214
|
-
def self.
|
214
|
+
def self.disk_storage
|
215
215
|
output = {}
|
216
216
|
`df -Pk`.split("\n").grep(%r{^/dev/}).each do |line|
|
217
217
|
device, total, used, available, capacity, mount = line.split(/\s+/)
|
@@ -227,15 +227,15 @@ class SystemInspector
|
|
227
227
|
output
|
228
228
|
end
|
229
229
|
|
230
|
-
def self.
|
231
|
-
|
230
|
+
def self.disk_io
|
231
|
+
mounted_devices = `mount`.split("\n").grep(/^\/dev\/(\w+)/) { $1 }
|
232
|
+
diskstats_lines = `cat /proc/diskstats`.split("\n").grep(/#{mounted_devices.join('|')}/)
|
233
|
+
entries = diskstats_lines.map do |line|
|
232
234
|
values = line.split
|
233
235
|
entry = {}
|
234
|
-
entry[:time]
|
236
|
+
entry[:time] = Time.now
|
235
237
|
entry[:device] = values[2]
|
236
|
-
entry[:
|
237
|
-
entry[:write] = values[10].to_f
|
238
|
-
entry[:io] = entry[:read] + entry[:write]
|
238
|
+
entry[:utilization] = values[12].to_f
|
239
239
|
SystemInspector.memory.store("disk_stats_#{entry[:device]}".to_sym, entry)
|
240
240
|
end
|
241
241
|
|
@@ -243,10 +243,8 @@ class SystemInspector
|
|
243
243
|
entries.each do |entry|
|
244
244
|
if previous_entry = SystemInspector.memory.retrieve("disk_stats_#{entry[:device]}".to_sym)
|
245
245
|
time_delta = (entry[:time] - previous_entry[:time]) * 1000
|
246
|
-
[:
|
247
|
-
|
248
|
-
output["disk.#{entry[:device]}.#{type}_utilization"] = utilization_delta / time_delta * 100
|
249
|
-
end
|
246
|
+
utilization_delta = entry[:utilization] - previous_entry[:utilization]
|
247
|
+
output["disk.#{entry[:device]}.percent_utilization"] = utilization_delta / time_delta * 100
|
250
248
|
end
|
251
249
|
end
|
252
250
|
output
|
metadata
CHANGED
@@ -1,10 +1,15 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: instrumental_tools
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 2
|
10
|
+
version: 0.4.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Elijah Miller
|
9
14
|
- Christopher Zelenak
|
10
15
|
- Kristopher Chambers
|
@@ -12,62 +17,80 @@ authors:
|
|
12
17
|
autorequire:
|
13
18
|
bindir: bin
|
14
19
|
cert_chain: []
|
15
|
-
|
16
|
-
|
17
|
-
|
20
|
+
|
21
|
+
date: 2012-01-12 00:00:00 Z
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
18
24
|
name: json
|
19
|
-
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
27
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
version: "0"
|
25
35
|
type: :runtime
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
29
38
|
name: instrumental_agent
|
30
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
41
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 1
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 5
|
49
|
+
version: "0.5"
|
36
50
|
type: :runtime
|
37
|
-
|
38
|
-
|
39
|
-
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
40
53
|
name: pidly
|
41
|
-
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
56
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 29
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 1
|
64
|
+
- 3
|
46
65
|
version: 0.1.3
|
47
66
|
type: :runtime
|
48
|
-
|
49
|
-
|
50
|
-
- !ruby/object:Gem::Dependency
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
51
69
|
name: rake
|
52
|
-
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
72
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
58
80
|
type: :development
|
59
|
-
|
60
|
-
version_requirements: *70127299357440
|
81
|
+
version_requirements: *id004
|
61
82
|
description: Tools for displaying information from and reporting to Instrumental (instrumentalapp.com)
|
62
|
-
email:
|
83
|
+
email:
|
63
84
|
- support@instrumentalapp.com
|
64
|
-
executables:
|
85
|
+
executables:
|
65
86
|
- gitstrumental
|
66
87
|
- instrument_server
|
67
88
|
- instrumental
|
68
89
|
extensions: []
|
90
|
+
|
69
91
|
extra_rdoc_files: []
|
70
|
-
|
92
|
+
|
93
|
+
files:
|
71
94
|
- .gitignore
|
72
95
|
- Gemfile
|
73
96
|
- README.md
|
@@ -80,26 +103,36 @@ files:
|
|
80
103
|
- lib/instrumental_tools/version.rb
|
81
104
|
homepage: http://github.com/fastestforward/instrumental_tools
|
82
105
|
licenses: []
|
106
|
+
|
83
107
|
post_install_message:
|
84
108
|
rdoc_options: []
|
85
|
-
|
109
|
+
|
110
|
+
require_paths:
|
86
111
|
- lib
|
87
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
113
|
none: false
|
89
|
-
requirements:
|
90
|
-
- -
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
122
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 3
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
version: "0"
|
99
130
|
requirements: []
|
131
|
+
|
100
132
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.8.
|
133
|
+
rubygems_version: 1.8.10
|
102
134
|
signing_key:
|
103
135
|
specification_version: 3
|
104
136
|
summary: Command line tools for Instrumental
|
105
137
|
test_files: []
|
138
|
+
|