server_metrics 0.0.3 → 0.0.5

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.
@@ -25,9 +25,9 @@ class ServerMetrics::Cpu < ServerMetrics::Collector
25
25
  uptime_output = `uptime`
26
26
  matches = uptime_output.match(/load averages?: ([\d.]+),? ([\d.]+),? ([\d.]+)\Z/)
27
27
 
28
- report("Last minute" => matches[1].to_f,
29
- "Last five minutes" => matches[2].to_f,
30
- "Last fifteen minutes" => matches[3].to_f)
28
+ report(:last_minute => matches[1].to_f,
29
+ :last_five_minutes => matches[2].to_f,
30
+ :last_fifteen_minutes => matches[3].to_f)
31
31
  end
32
32
 
33
33
  # Helper class
@@ -102,22 +102,22 @@ class ServerMetrics::Cpu < ServerMetrics::Collector
102
102
  divo2 = div / 2
103
103
 
104
104
  results = {
105
- "User" => (100.0 * diff_user + divo2) / div,
106
- "System" => (100.0 * diff_system + divo2) / div,
107
- "Idle" => (100.0 * diff_idle + divo2) / div,
108
- "IO wait" => (100.0 * diff_iowait + divo2) / div,
109
- "Procs running" => self.procs_running,
110
- "Procs blocked" => self.procs_blocked
105
+ :user => (100.0 * diff_user + divo2) / div,
106
+ :system => (100.0 * diff_system + divo2) / div,
107
+ :idle => (100.0 * diff_idle + divo2) / div,
108
+ :io_wait => (100.0 * diff_iowait + divo2) / div,
109
+ :procs_running => self.procs_running,
110
+ :procs_blocked => self.procs_blocked
111
111
  }
112
112
 
113
113
  if diff_steal && steal > 0
114
- results["Steal"] = (100.0 * diff_steal + divo2) / div
114
+ results[:steal] = (100.0 * diff_steal + divo2) / div
115
115
  end
116
116
 
117
117
  if self.time && other.time
118
118
  diff_in_seconds = self.time.to_f - other.time.to_f
119
119
 
120
- results["Interrupts"] = (self.interrupts.to_f - other.interrupts.to_f) / diff_in_seconds
120
+ results[:interrupts] = (self.interrupts.to_f - other.interrupts.to_f) / diff_in_seconds
121
121
  end
122
122
 
123
123
  results
@@ -33,8 +33,8 @@ class ServerMetrics::Disk < ServerMetrics::MultiCollector
33
33
  hash = parsed_lines.select{|l| l["Filesystem"] == device}.first
34
34
  result = {}
35
35
  hash.each_pair do |key,value|
36
- #key=normalize_key(key) # downcase, make a symbol, etc
37
- value = convert_to_mb(value) if [:avail,:capacity,:size,:used, :usepercent].include?(key)
36
+ key=normalize_key(key) # downcase, make a symbol, etc
37
+ value = convert_to_mb(value) if [:avail, :capacity, :size, :used].include?(key)
38
38
  result[key]=value
39
39
  end
40
40
 
@@ -46,14 +46,14 @@ class ServerMetrics::Disk < ServerMetrics::MultiCollector
46
46
  stats = iostat(device)
47
47
 
48
48
  if stats
49
- counter(device, "RPS", stats['rio'], :per => :second)
50
- counter(device, "WPS", stats['wio'], :per => :second)
51
- counter(device, "Kb RPS", stats['rsect'] / 2, :per => :second)
52
- counter(device, "Kb WPS", stats['wsect'] / 2, :per => :second)
53
- counter(device, "Utilization", stats['use'] / 10.0, :per => :second)
49
+ counter(device, :rps, stats['rio'], :per => :second)
50
+ counter(device, :wps, stats['wio'], :per => :second)
51
+ counter(device, :rps_kb, stats['rsect'] / 2, :per => :second)
52
+ counter(device, :wps_kb, stats['wsect'] / 2, :per => :second)
53
+ counter(device, :utilization, stats['use'] / 10.0, :per => :second)
54
54
  # Not 100% sure that average queue length is present on all distros.
55
55
  if stats['aveq']
56
- counter(device, "Average queue length", stats['aveq'], :per => :second)
56
+ counter(device, :average_queue_length, stats['aveq'], :per => :second)
57
57
  end
58
58
 
59
59
  if old = memory(device, "stats")
@@ -62,7 +62,7 @@ class ServerMetrics::Disk < ServerMetrics::MultiCollector
62
62
  if ios > 0
63
63
  await = ((stats['ruse'] - old['ruse']) + (stats['wuse'] - old['wuse'])) / ios.to_f
64
64
 
65
- report(device, "Await" => await)
65
+ report(device, :await => await)
66
66
  end
67
67
  end
68
68
 
@@ -103,4 +103,8 @@ class ServerMetrics::Disk < ServerMetrics::MultiCollector
103
103
  return found_device || lvm
104
104
  end
105
105
 
106
+ def normalize_key(key)
107
+ key = "Used Percent" if /capacity|use.*%|%.*use/i === key
108
+ key.downcase.gsub(" ", "_").to_sym
109
+ end
106
110
  end
@@ -49,15 +49,15 @@ class ServerMetrics::Memory < ServerMetrics::Collector
49
49
  # will be passed at the end to report to Scout
50
50
  report_data = Hash.new
51
51
 
52
- report_data['Memory total'] = mem_total
53
- report_data['Memory used'] = mem_used
54
- report_data['Memory available'] = mem_total - mem_used
55
- report_data['% Memory used'] = mem_percent_used
52
+ report_data[:size] = mem_total
53
+ report_data[:used] = mem_used
54
+ report_data[:avail] = mem_total - mem_used
55
+ report_data[:used_percent] = mem_percent_used
56
56
 
57
- report_data['Swap total'] = swap_total
58
- report_data['Swap used'] = swap_used
57
+ report_data[:swap_size] = swap_total
58
+ report_data[:swap_used] = swap_used
59
59
  unless swap_total == 0
60
- report_data['% Swap used'] = swap_percent_used
60
+ report_data[:swap_used_percent] = swap_percent_used
61
61
  end
62
62
  @data = report_data
63
63
 
@@ -80,15 +80,15 @@ class ServerMetrics::Memory < ServerMetrics::Collector
80
80
  mem.scan(/(\d+|\d+\.\d+)([bkmg])\s+(\w+)/i) do |amount, unit, label|
81
81
  case label
82
82
  when 'used'
83
- report_data["Memory used"] =
83
+ report_data[:used] =
84
84
  (amount.to_f * DARWIN_UNITS[unit.downcase]).round
85
85
  when 'free'
86
- report_data["Memory available"] =
86
+ report_data[:avail] =
87
87
  (amount.to_f * DARWIN_UNITS[unit.downcase]).round
88
88
  end
89
89
  end
90
- report_data["Memory total"] = report_data["Memory used"]+report_data["Memory available"]
91
- report_data['% Memory used'] = ((report_data["Memory used"].to_f/report_data["Memory total"])*100).to_i
90
+ report_data[:size] = report_data[:used]+report_data[:avail]
91
+ report_data[:used_percent] = ((report_data[:used].to_f/report_data[:size])*100).to_i
92
92
  @data = report_data
93
93
  end
94
94
 
@@ -102,23 +102,23 @@ class ServerMetrics::Memory < ServerMetrics::Collector
102
102
  prstat =~ /(ZONEID[^\n]*)\n(.*)/
103
103
  values = $2.split(' ')
104
104
 
105
- report_data['Memory used'] = convert_to_mb(values[3])
106
- report_data['Swap used'] = convert_to_mb(values[2])
105
+ report_data[:used] = convert_to_mb(values[3])
106
+ report_data[:swap_used] = convert_to_mb(values[2])
107
107
 
108
108
  prtconf = `/usr/sbin/prtconf | grep Memory`
109
109
 
110
110
  prtconf =~ /\d+/
111
- report_data['Memory total'] = $&.to_i
112
- report_data['% Memory used'] = (report_data['Memory used'] / report_data['Memory total'].to_f * 100).to_i
111
+ report_data[:size] = $&.to_i
112
+ report_data[:used_percent] = (report_data[:used] / report_data[:size].to_f * 100).to_i
113
113
 
114
114
  swap = `swap -s`
115
115
  swap =~ /\d+[a-zA-Z]\sused/
116
116
  swap_used = convert_to_mb($&)
117
117
  swap =~ /\d+[a-zA-Z]\savailable/
118
118
  swap_available = convert_to_mb($&)
119
- report_data['Swap total'] = swap_used+swap_available
120
- unless report_data['Swap total'] == 0
121
- report_data['% Swap used'] = (report_data['Swap used'] / report_data['Swap total'].to_f * 100).to_i
119
+ report_data[:swap_size] = swap_used+swap_available
120
+ unless report_data[:swap_size] == 0
121
+ report_data[:swap_used_percent] = (report_data[:swap_used] / report_data[:swap_size].to_f * 100).to_i
122
122
  end
123
123
 
124
124
  @data = report_data
@@ -16,10 +16,10 @@ class ServerMetrics::Network < ServerMetrics::MultiCollector
16
16
 
17
17
  bytes_in, packets_in, bytes_out, packets_out = cols.values_at(0, 1, 8, 9).collect { |i| i.to_i }
18
18
 
19
- counter(iface, "Bytes in", bytes_in.to_f / 1024.0, :per => :second, :round => 2)
20
- counter(iface, "Packets in", packets_in.to_f, :per => :second, :round => 2)
21
- counter(iface, "Bytes out", bytes_out.to_f / 1024.0, :per => :second, :round => 2)
22
- counter(iface, "Packets out", packets_out.to_f, :per => :second, :round => 2)
19
+ counter(iface, :bytes_in, bytes_in.to_f / 1024.0, :per => :second, :round => 2)
20
+ counter(iface, :packets_in, packets_in.to_f, :per => :second, :round => 2)
21
+ counter(iface, :bytes_out, bytes_out.to_f / 1024.0, :per => :second, :round => 2)
22
+ counter(iface, :packets_out, packets_out.to_f, :per => :second, :round => 2)
23
23
  end
24
24
  end
25
25
  end
@@ -11,36 +11,40 @@ class ServerMetrics::Processes
11
11
  @last_process_list
12
12
  end
13
13
 
14
- # This is the main method to call. It returns a hash of two arrays.
15
- # The arrays have the top 10 memory using processes, and the top 10 CPU using processes, respectively.
16
- # The array elements are hashes that look like this:
14
+
15
+ # This is the main method to call. It returns a hash of processes, keyed by the executable name.
16
+ # Processes are returned either because they are a top 10 CPU consumer, or a top 10 memory consumer.
17
17
  #
18
- # {:top_memory=>
19
- # [
18
+ # The exact number or processes returned depends on the overlap between the two lists (cpu and memory consumers).
19
+ # The list will always be between 10 and 20 items long.
20
+
21
+ # {'mysqld' =>
20
22
  # {
21
23
  # :cmd => "mysqld", # the command (without the path of arguments being run)
22
24
  # :count => 1, # the number of these processes (grouped by the above command)
23
- # :cpu => 34, # the total CPU usag of the processes
24
- # :memory => 2 # the total memory usage of the processes
25
- # }, ...
26
- # ],
27
- # :top_cpu=>
28
- # [
25
+ # :cpu => 34, # the total CPU usage of the processes
26
+ # :memory => 2, # the total memory usage of the processes
27
+ # :cmd_lines => ["cmd args1", "cmd args2"]
28
+ # },
29
+ # 'apache' =>
29
30
  # {
30
- # :cmd => "mysqld",
31
- # :count => 1,
32
- # :cpu => 34,
33
- # :memory => 2
34
- # }, ...
35
- # ]
36
- # }
31
+ # ....
32
+ # }
33
+ # }
34
+
37
35
  def run
38
36
  @processes = calculate_processes # returns a hash
37
+ top_memory = get_top_processes(:memory, 10) # returns an array
38
+ top_cpu = get_top_processes(:memory, 10) # returns an array
39
+
40
+ # combine the two and index by cmd. The indexing process will remove duplicates
41
+ result = (top_cpu + top_memory).inject(Hash.new) {|temp_hash,process_hash| temp_hash[process_hash[:cmd]] = process_hash; temp_hash }
39
42
 
40
- {
41
- :top_memory => get_top_processes(:memory, 10),
42
- :top_cpu => get_top_processes(:cpu, 10)
43
- }
43
+ # An alternate approach is to return an array with two separate arrays. More explicit, but more verbose.
44
+ #{
45
+ # :top_memory => get_top_processes(:memory, 10),
46
+ # :top_cpu => get_top_processes(:cpu, 10)
47
+ #}
44
48
  end
45
49
 
46
50
  # called from run(). This method lists all the processes running on the server, groups them by command,
@@ -90,7 +94,7 @@ class ServerMetrics::Processes
90
94
  # Returns an array of hashes:
91
95
  # [{:cmd=>"ruby", :cpu=>30.0, :memory=>100, :uid=>1,:cmdlines=>[]}, {:cmd => ...} ]
92
96
  def get_top_processes(order_by, num)
93
- @processes.map { |key, hash| {:cmd => key}.merge(hash) }.sort { |a, b| a[order_by] <=> b[order_by] }.reverse[0...num-1]
97
+ @processes.map { |key, hash| {:cmd => key}.merge(hash) }.sort { |a, b| a[order_by] <=> b[order_by] }.reverse[0...num]
94
98
  end
95
99
 
96
100
  # for persisting to a file -- conforms to same basic API as the Collectors do.
@@ -1,3 +1,3 @@
1
1
  module ServerMetrics
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
data/test/test_helper.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  $LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/..' )
2
2
  require 'test/unit'
3
- require 'lib/server_metrics'
3
+ require 'rubygems'
4
4
  require 'pry'
5
5
  require 'awesome_print'
6
6
  require 'timecop'
7
- require 'mocha'
7
+ require 'mocha/setup'
8
+
9
+ require 'lib/server_metrics'
8
10
  AwesomePrint.defaults = {
9
11
  :indent => -2,
10
12
  :sort_keys =>true
@@ -46,4 +48,4 @@ class FixtureFile
46
48
  @sections[key]
47
49
  end
48
50
  end
49
- end
51
+ end
@@ -10,9 +10,9 @@ class TestWithFixtures < Test::Unit::TestCase
10
10
  c.expects(:`).with("uptime").returns(fixture.command("uptime")).once
11
11
 
12
12
  c.run
13
- assert c.data["Last minute"]
14
- assert c.data["Last five minutes"]
15
- assert c.data["Last fifteen minutes"]
13
+ assert c.data[:last_minute]
14
+ assert c.data[:last_five_minutes]
15
+ assert c.data[:last_fifteen_minutes]
16
16
  assert_equal 3, c.data.keys.size
17
17
  c
18
18
  end
@@ -28,8 +28,8 @@ class TestWithFixtures < Test::Unit::TestCase
28
28
  c.run
29
29
  end
30
30
 
31
- assert c.data["IO wait"]
32
- assert c.data["Idle"]
31
+ assert c.data[:io_wait]
32
+ assert c.data[:idle]
33
33
  end
34
34
 
35
35
 
@@ -43,18 +43,54 @@ class TestWithFixtures < Test::Unit::TestCase
43
43
  c.run
44
44
 
45
45
  assert_equal ["/dev/xvda1"], c.data.keys
46
+
46
47
  res = c.data["/dev/xvda1"]
47
48
 
48
- assert res["Avail"]
49
- assert res["Filesystem"]
50
- assert res["Mounted on"]
51
- assert res["Size"]
52
- assert res["Use%"]
53
- assert res["Used"]
49
+ assert res[:avail]
50
+ assert res[:filesystem]
51
+ assert res[:mounted_on]
52
+ assert res[:size]
53
+ assert res[:used_percent]
54
+ assert res[:used]
54
55
  assert_equal 6, res.keys.size
55
56
  c
56
57
  end
57
58
 
59
+ def test_disk_converts_use_percent_and_capacity_to_used_percent
60
+ response_varieties = []
61
+ response_varieties << <<-eos
62
+ Filesystem Capacity
63
+ /dev/xvda1 70%
64
+ none 0%
65
+ none 0%
66
+ eos
67
+
68
+ response_varieties << <<-eos
69
+ Filesystem Use%
70
+ /dev/xvda1 70%
71
+ none 0%
72
+ none 0%
73
+ eos
74
+
75
+ response_varieties<< <<-eos
76
+ Filesystem %Use
77
+ /dev/xvda1 70%
78
+ none 0%
79
+ none 0%
80
+ eos
81
+
82
+ fixture = fixtures(:disk)
83
+ response_varieties.each do |response|
84
+ c = ServerMetrics::Disk.new()
85
+ c.expects(:`).with("mount").returns(fixture.command("mount")).once
86
+ c.expects(:`).with("cat /proc/diskstats").returns(fixture.command("cat /proc/diskstats")).once
87
+ c.expects(:`).with("df -h").returns(response)
88
+ c.run
89
+
90
+ assert c.data['/dev/xvda1'][:used_percent]
91
+ end
92
+ end
93
+
58
94
  # Second run we also get counter data
59
95
  def test_disk_second_run
60
96
  c=test_disk
@@ -69,8 +105,10 @@ class TestWithFixtures < Test::Unit::TestCase
69
105
 
70
106
  assert_equal ["/dev/xvda1"], c.data.keys
71
107
  res = c.data["/dev/xvda1"]
72
- assert res["WPS"]
73
- assert res["RPS"]
108
+ assert res[:wps]
109
+ assert res[:rps]
110
+ assert res[:rps_kb]
111
+ assert res[:wps_kb]
74
112
  end
75
113
 
76
114
  def test_memory
@@ -80,7 +118,14 @@ class TestWithFixtures < Test::Unit::TestCase
80
118
  c.expects(:`).with("cat /proc/meminfo").returns(fixture.command("cat /proc/meminfo")).once
81
119
  c.run
82
120
  assert_equal 7, c.data.keys.size
83
- assert c.data['Swap total']
121
+ # the field names should align with the disk field names
122
+ assert c.data[:swap_size]
123
+ assert c.data[:swap_used]
124
+ assert c.data[:swap_used_percent]
125
+ assert c.data[:used]
126
+ assert c.data[:avail]
127
+ assert c.data[:used_percent]
128
+ assert c.data[:size]
84
129
  end
85
130
 
86
131
  def test_network
@@ -98,8 +143,8 @@ class TestWithFixtures < Test::Unit::TestCase
98
143
  assert c.data.keys.include?("eth1")
99
144
  assert_equal 2, c.data.keys.size
100
145
 
101
- assert c.data["eth0"]["Bytes in"]
102
- assert c.data["eth1"]["Bytes in"]
146
+ assert c.data["eth0"][:bytes_in]
147
+ assert c.data["eth1"][:bytes_in]
103
148
  end
104
149
  end
105
150
 
metadata CHANGED
@@ -1,132 +1,135 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: server_metrics
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Andre Lewis
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-10-29 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-10-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: sys-proctable
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: bundler
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
- requirements:
34
+ requirements:
41
35
  - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 9
44
- segments:
45
- - 1
46
- - 3
47
- version: "1.3"
36
+ - !ruby/object:Gem::Version
37
+ version: '1.3'
48
38
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rake
52
39
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
54
41
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.3'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
62
54
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: awesome_print
66
55
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: awesome_print
64
+ requirement: !ruby/object:Gem::Requirement
68
65
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
76
70
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: pry
80
71
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: pry
80
+ requirement: !ruby/object:Gem::Requirement
82
81
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
90
86
  type: :development
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: timecop
94
87
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: timecop
96
+ requirement: !ruby/object:Gem::Requirement
96
97
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
104
102
  type: :development
105
- version_requirements: *id006
106
- - !ruby/object:Gem::Dependency
107
- name: mocha
108
103
  prerelease: false
109
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: mocha
112
+ requirement: !ruby/object:Gem::Requirement
110
113
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
118
  type: :development
119
- version_requirements: *id007
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
120
126
  description: Collect information about disks, memory, CPU, etc
121
- email:
127
+ email:
122
128
  - andre@scoutapp.com
123
129
  executables: []
124
-
125
130
  extensions: []
126
-
127
131
  extra_rdoc_files: []
128
-
129
- files:
132
+ files:
130
133
  - .gitignore
131
134
  - Gemfile
132
135
  - LICENSE.txt
@@ -153,41 +156,38 @@ files:
153
156
  - test/test_basics.rb
154
157
  - test/test_helper.rb
155
158
  - test/test_with_fixtures.rb
156
- has_rdoc: true
157
159
  homepage: http://scoutapp.com
158
- licenses:
160
+ licenses:
159
161
  - MIT
160
162
  post_install_message:
161
163
  rdoc_options: []
162
-
163
- require_paths:
164
+ require_paths:
164
165
  - lib
165
- required_ruby_version: !ruby/object:Gem::Requirement
166
+ required_ruby_version: !ruby/object:Gem::Requirement
166
167
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- hash: 3
171
- segments:
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ segments:
172
173
  - 0
173
- version: "0"
174
- required_rubygems_version: !ruby/object:Gem::Requirement
174
+ hash: 3269620975841777684
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
176
  none: false
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- hash: 3
180
- segments:
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ segments:
181
182
  - 0
182
- version: "0"
183
+ hash: 3269620975841777684
183
184
  requirements: []
184
-
185
185
  rubyforge_project:
186
- rubygems_version: 1.4.2
186
+ rubygems_version: 1.8.25
187
187
  signing_key:
188
188
  specification_version: 3
189
189
  summary: For use with the Scout agent
190
- test_files:
190
+ test_files:
191
191
  - test/fixtures/cpu.txt
192
192
  - test/fixtures/disk.txt
193
193
  - test/fixtures/memory.txt