instrumental_tools 0.5.1 → 0.5.2

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ### 0.5.2 [April 19th, 2012]
2
+ * Check for existence of system commands prior to usage in instrument_server.
3
+
1
4
  ### 0.5.1 [February 9th, 2012]
2
5
  * Removing symbol to proc use for compatibility with older version of Ruby
3
6
 
data/README.md CHANGED
@@ -75,3 +75,7 @@ Collect commit counts from git repositories:
75
75
  cd project_directory
76
76
  gitstrumental <API_KEY>
77
77
  ```
78
+
79
+ ## Troubleshooting & Help
80
+
81
+ We are here to help. Email us at [support@instrumentalapp.com](mailto:support@instrumentalapp.com), or visit the [Instrumental Support](https://fastestforward.campfirenow.com/6b934) Campfire room.
@@ -35,6 +35,14 @@ class SystemInspector
35
35
  end
36
36
  end
37
37
 
38
+ def self.command_missing(command, section)
39
+ puts "Command #{command} not found. Metrics for #{section} will not be collected."
40
+ end
41
+
42
+ def self.command_present?(command, section)
43
+ `which #{command}`.length > 0 || command_missing(command, section)
44
+ end
45
+
38
46
  def load_all
39
47
  self.class.memory.cycle
40
48
 
@@ -50,7 +58,11 @@ class SystemInspector
50
58
 
51
59
  module OSX
52
60
  def self.load_cpu
53
- { :gauges => top }
61
+ output = { :gauges => {} }
62
+ if SystemInspector.command_present?('top', 'CPU')
63
+ output[:gauges].merge!(top)
64
+ end
65
+ output
54
66
  end
55
67
 
56
68
  def self.top
@@ -84,7 +96,11 @@ class SystemInspector
84
96
 
85
97
  def self.load_memory
86
98
  # TODO: swap
87
- { :gauges => vm_stat }
99
+ output = { :gauges => {} }
100
+ if SystemInspector.command_present?('vm_stat', 'memory')
101
+ output[:gauges].merge!(vm_stat)
102
+ end
103
+ output
88
104
  end
89
105
 
90
106
  def self.vm_stat
@@ -108,7 +124,11 @@ class SystemInspector
108
124
  end
109
125
 
110
126
  def self.load_disks
111
- { :gauges => df }
127
+ output = { :gauges => {} }
128
+ if SystemInspector.command_present?('df', 'disk')
129
+ output[:gauges].merge!(df)
130
+ end
131
+ output
112
132
  end
113
133
 
114
134
  def self.df
@@ -183,8 +203,12 @@ class SystemInspector
183
203
 
184
204
  def self.load_memory
185
205
  output = { :gauges => {} }
186
- output[:gauges].merge!(memory)
187
- output[:gauges].merge!(swap)
206
+ if SystemInspector.command_present?('free', 'memory')
207
+ output[:gauges].merge!(memory)
208
+ end
209
+ if SystemInspector.command_present?('free', 'swap')
210
+ output[:gauges].merge!(swap)
211
+ end
188
212
  output
189
213
  end
190
214
 
@@ -209,7 +233,14 @@ class SystemInspector
209
233
  end
210
234
 
211
235
  def self.load_disks
212
- { :gauges => disk_storage.merge(disk_io) }
236
+ output = { :gauges => {} }
237
+ if SystemInspector.command_present?('df', 'disk storage')
238
+ output[:gauges].merge!(disk_storage)
239
+ end
240
+ if SystemInspector.command_present?('mount', 'disk IO')
241
+ output[:gauges].merge!(disk_io)
242
+ end
243
+ output
213
244
  end
214
245
 
215
246
  def self.disk_storage
@@ -252,7 +283,11 @@ class SystemInspector
252
283
  end
253
284
 
254
285
  def self.load_filesystem
255
- { :gauges => filesystem }
286
+ output = { :gauges => {} }
287
+ if SystemInspector.command_present?('sysctl', 'filesystem')
288
+ output[:gauges].merge!(filesystem)
289
+ end
290
+ output
256
291
  end
257
292
 
258
293
  def self.filesystem
@@ -1,5 +1,5 @@
1
1
  module Instrumental
2
2
  module Tools
3
- VERSION = '0.5.1'
3
+ VERSION = '0.5.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,15 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: instrumental_tools
3
- version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 5
9
- - 1
10
- version: 0.5.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Elijah Miller
14
9
  - Christopher Zelenak
15
10
  - Kristopher Chambers
@@ -17,81 +12,82 @@ authors:
17
12
  autorequire:
18
13
  bindir: bin
19
14
  cert_chain: []
20
-
21
- date: 2012-02-09 00:00:00 -05:00
22
- default_executable:
23
- dependencies:
24
- - !ruby/object:Gem::Dependency
15
+ date: 2012-04-19 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
25
18
  name: json
26
- version_requirements: &id001 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
27
20
  none: false
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- hash: 3
32
- segments:
33
- - 0
34
- version: "0"
35
- prerelease: false
36
- requirement: *id001
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
37
25
  type: :runtime
38
- - !ruby/object:Gem::Dependency
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ - !ruby/object:Gem::Dependency
39
34
  name: instrumental_agent
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
35
+ requirement: !ruby/object:Gem::Requirement
41
36
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 57
46
- segments:
47
- - 0
48
- - 8
49
- - 3
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
50
40
  version: 0.8.3
51
- prerelease: false
52
- requirement: *id002
53
41
  type: :runtime
54
- - !ruby/object:Gem::Dependency
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: 0.8.3
49
+ - !ruby/object:Gem::Dependency
55
50
  name: pidly
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
51
+ requirement: !ruby/object:Gem::Requirement
57
52
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 29
62
- segments:
63
- - 0
64
- - 1
65
- - 3
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
66
56
  version: 0.1.3
67
- prerelease: false
68
- requirement: *id003
69
57
  type: :runtime
70
- - !ruby/object:Gem::Dependency
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: 0.1.3
65
+ - !ruby/object:Gem::Dependency
71
66
  name: rake
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
67
+ requirement: !ruby/object:Gem::Requirement
73
68
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
79
- - 0
80
- version: "0"
81
- prerelease: false
82
- requirement: *id004
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
83
73
  type: :development
84
- description: A collection of scripts useful for monitoring servers and services with Instrumental (instrumentalapp.com)
85
- email:
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ description: A collection of scripts useful for monitoring servers and services with
82
+ Instrumental (instrumentalapp.com)
83
+ email:
86
84
  - support@instrumentalapp.com
87
- executables:
85
+ executables:
88
86
  - gitstrumental
89
87
  - instrument_server
90
88
  extensions: []
91
-
92
89
  extra_rdoc_files: []
93
-
94
- files:
90
+ files:
95
91
  - .gitignore
96
92
  - CHANGELOG.md
97
93
  - Gemfile
@@ -102,39 +98,28 @@ files:
102
98
  - instrumental_tools.gemspec
103
99
  - lib/instrumental_tools/capistrano.rb
104
100
  - lib/instrumental_tools/version.rb
105
- has_rdoc: true
106
101
  homepage: http://github.com/fastestforward/instrumental_tools
107
102
  licenses: []
108
-
109
103
  post_install_message:
110
104
  rdoc_options: []
111
-
112
- require_paths:
105
+ require_paths:
113
106
  - lib
114
- required_ruby_version: !ruby/object:Gem::Requirement
107
+ required_ruby_version: !ruby/object:Gem::Requirement
115
108
  none: false
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- hash: 3
120
- segments:
121
- - 0
122
- version: "0"
123
- required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
114
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
132
119
  requirements: []
133
-
134
120
  rubyforge_project:
135
- rubygems_version: 1.3.7
121
+ rubygems_version: 1.8.19
136
122
  signing_key:
137
123
  specification_version: 3
138
124
  summary: Command line tools for Instrumental
139
125
  test_files: []
140
-