server_metrics 0.0.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/.gitignore +19 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +34 -0
- data/Rakefile +10 -0
- data/example_processes.rb +20 -0
- data/example_usage.rb +43 -0
- data/lib/server_metrics/collector.rb +147 -0
- data/lib/server_metrics/collectors/cpu.rb +137 -0
- data/lib/server_metrics/collectors/disk.rb +106 -0
- data/lib/server_metrics/collectors/memory.rb +156 -0
- data/lib/server_metrics/collectors/network.rb +26 -0
- data/lib/server_metrics/collectors/processes.rb +110 -0
- data/lib/server_metrics/multi_collector.rb +91 -0
- data/lib/server_metrics/system_info.rb +47 -0
- data/lib/server_metrics/version.rb +3 -0
- data/lib/server_metrics.rb +8 -0
- data/server_metrics.gemspec +29 -0
- data/test/fixtures/cpu.txt +54 -0
- data/test/fixtures/disk.txt +79 -0
- data/test/fixtures/memory.txt +43 -0
- data/test/fixtures/network.txt +13 -0
- data/test/test.rb +14 -0
- data/test/test_basics.rb +153 -0
- data/test/test_helper.rb +49 -0
- data/test/test_with_fixtures.rb +105 -0
- metadata +193 -0
data/test/test.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path("test_helper", File.dirname(__FILE__))
|
2
|
+
class TestWithFixtures < Test::Unit::TestCase
|
3
|
+
|
4
|
+
def test_system_info
|
5
|
+
assert ServerMetrics::SystemInfo.architecture
|
6
|
+
assert ServerMetrics::SystemInfo.os
|
7
|
+
assert ServerMetrics::SystemInfo.os_version
|
8
|
+
assert ServerMetrics::SystemInfo.num_processors
|
9
|
+
assert ServerMetrics::SystemInfo.hostname
|
10
|
+
assert ServerMetrics::SystemInfo.timezone
|
11
|
+
assert ServerMetrics::SystemInfo.timezone_offset
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
data/test/test_basics.rb
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
require File.expand_path("test_helper",File.dirname(__FILE__))
|
2
|
+
|
3
|
+
class TestWithFixtures < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_colectors_defined
|
6
|
+
assert_nothing_raised do
|
7
|
+
ServerMetrics::Cpu
|
8
|
+
ServerMetrics::Disk
|
9
|
+
ServerMetrics::Memory
|
10
|
+
ServerMetrics::Network
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_collector_to_hash
|
15
|
+
c=ServerMetrics::Collector.new(:port=>80)
|
16
|
+
h=c.to_hash
|
17
|
+
assert h[:options]
|
18
|
+
assert h[:data]
|
19
|
+
assert h[:memory]
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_collector_from_hash
|
23
|
+
c=ServerMetrics::Collector.new(:port=>80)
|
24
|
+
c2=ServerMetrics::Collector.from_hash(c.to_hash)
|
25
|
+
assert_equal 80, c2.option(:port)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_collector
|
29
|
+
c=SomeCollector.new
|
30
|
+
c.run
|
31
|
+
assert_equal({:capacity=>9}, c.data)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_collector_with_memory
|
35
|
+
c=SomeCollectorWithMemory.new
|
36
|
+
c.run
|
37
|
+
assert_equal(0, c.data["val"])
|
38
|
+
c.run
|
39
|
+
assert_equal(1, c.data["val"])
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_collector_with_counter
|
43
|
+
c=SomeCollectorWithCounter.new
|
44
|
+
c.run
|
45
|
+
assert_equal(nil, c.data["val"])
|
46
|
+
Timecop.travel(1) do
|
47
|
+
c.run
|
48
|
+
assert_includes(450..550, c.data["val"])
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
def test_multi_collector
|
54
|
+
c=SomeMultiCollector.new
|
55
|
+
c.run
|
56
|
+
assert_equal({:alpha=>{"capacity"=>9},:beta=>{"capacity"=>10}}, c.data)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_multi_collector_with_memory
|
60
|
+
c=SomeMultiCollectorWithMemory.new
|
61
|
+
c.run
|
62
|
+
assert_equal(0, c.data[:alpha]["val"])
|
63
|
+
assert_equal(100, c.data[:beta]["val"])
|
64
|
+
c.run
|
65
|
+
assert_equal(1, c.data[:alpha]["val"])
|
66
|
+
assert_equal(101, c.data[:beta]["val"])
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_multi_collector_with_counter
|
70
|
+
c=SomeMultiCollectorWithCounter.new
|
71
|
+
c.run
|
72
|
+
assert_equal(nil, c.data[:alpha])
|
73
|
+
assert_equal(nil, c.data[:beta])
|
74
|
+
Timecop.travel(1) do
|
75
|
+
c.run
|
76
|
+
assert_include(450..550, c.data[:alpha]["val"])
|
77
|
+
assert_include(950..1050, c.data[:beta]["val"])
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_processes_to_hash
|
82
|
+
p = ServerMetrics::Processes.new
|
83
|
+
last_run=Time.now-60
|
84
|
+
p.instance_variable_set '@last_run', last_run
|
85
|
+
p.instance_variable_set '@last_process_list', "bogus value"
|
86
|
+
|
87
|
+
assert_equal({:last_run=>last_run,:last_process_list=>"bogus value"}, p.to_hash)
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_processes_from_hash
|
91
|
+
last_run=Time.now-60
|
92
|
+
p=ServerMetrics::Processes.from_hash(:last_run=>last_run,:last_process_list=>"bogus value")
|
93
|
+
assert_equal last_run, p.instance_variable_get("@last_run")
|
94
|
+
assert_equal "bogus value", p.instance_variable_get("@last_process_list")
|
95
|
+
end
|
96
|
+
|
97
|
+
# Helper Classes
|
98
|
+
class SomeCollector < ServerMetrics::Collector
|
99
|
+
def build_report
|
100
|
+
report(:capacity=>9)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
class SomeMultiCollector < ServerMetrics::MultiCollector
|
105
|
+
def build_report
|
106
|
+
report(:alpha,"capacity"=>9)
|
107
|
+
report(:beta,"capacity"=>10)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
class SomeCollectorWithMemory < ServerMetrics::Collector
|
112
|
+
def build_report
|
113
|
+
@val = memory(:val) || 0
|
114
|
+
report("val"=>@val)
|
115
|
+
remember :val=>@val+1
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
class SomeMultiCollectorWithMemory < ServerMetrics::MultiCollector
|
120
|
+
def build_report
|
121
|
+
@alpha_val = memory(:alpha,:val) || 0
|
122
|
+
@beta_val = memory(:beta,:val) || 100
|
123
|
+
|
124
|
+
report(:alpha, "val"=>@alpha_val)
|
125
|
+
report(:beta, "val"=>@beta_val)
|
126
|
+
|
127
|
+
remember(:alpha, :val => @alpha_val+1)
|
128
|
+
remember(:beta, :val => @beta_val+1)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
class SomeCollectorWithCounter < ServerMetrics::Collector
|
133
|
+
def build_report
|
134
|
+
@val = memory(:val) || 0
|
135
|
+
counter "val", @val, :per=>:second
|
136
|
+
remember :val=>@val+500
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class SomeMultiCollectorWithCounter < ServerMetrics::MultiCollector
|
141
|
+
def build_report
|
142
|
+
@alpha_val = memory(:alpha,:val) || 0
|
143
|
+
@beta_val = memory(:beta,:val) || 0
|
144
|
+
|
145
|
+
counter(:alpha, "val", @alpha_val, :per=>:second)
|
146
|
+
counter(:beta, "val", @beta_val, :per=>:second)
|
147
|
+
|
148
|
+
remember(:alpha, :val => @alpha_val+500)
|
149
|
+
remember(:beta, :val => @beta_val+1000)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/..' )
|
2
|
+
require 'test/unit'
|
3
|
+
require 'lib/server_metrics'
|
4
|
+
require 'pry'
|
5
|
+
require 'awesome_print'
|
6
|
+
require 'timecop'
|
7
|
+
require 'mocha'
|
8
|
+
AwesomePrint.defaults = {
|
9
|
+
:indent => -2,
|
10
|
+
:sort_keys =>true
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
def fixtures(name)
|
15
|
+
FixtureFile.new(File.expand_path(File.dirname(__FILE__)+"/fixtures/#{name}.txt"))
|
16
|
+
end
|
17
|
+
|
18
|
+
# parses fixture files, intended for easily mocking system calls
|
19
|
+
# Fixture files are in the format:
|
20
|
+
#
|
21
|
+
# ### `some shell command` options
|
22
|
+
# the text output ...
|
23
|
+
#
|
24
|
+
# ### `another command` options
|
25
|
+
#
|
26
|
+
# ... with options being whatever text you'd like to be able to select this command with later
|
27
|
+
class FixtureFile
|
28
|
+
def initialize(file)
|
29
|
+
contents=File.read(file)
|
30
|
+
sections = contents.split(/### (.+)\n/)
|
31
|
+
sections = sections[1..sections.size-1]
|
32
|
+
@sections={}
|
33
|
+
(0..sections.size-1).each do |index|
|
34
|
+
@sections[sections[index]] = sections[index+1].chop if index.even?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def command(cmd, options=nil)
|
39
|
+
key = options ? @sections.keys.find{|k|k =~/`#{cmd}` #{options}/} : @sections.keys.find{|k|k =~/`#{cmd}`/}
|
40
|
+
|
41
|
+
if !key
|
42
|
+
puts "No fixture found for `#{cmd}` with options: #{options ? options : nil }. Fixtures available:\n"
|
43
|
+
puts @sections.keys.join("\n")
|
44
|
+
exit
|
45
|
+
else
|
46
|
+
@sections[key]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.expand_path("test_helper",File.dirname(__FILE__))
|
2
|
+
|
3
|
+
class TestWithFixtures < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_cpu
|
6
|
+
fixture = fixtures(:cpu)
|
7
|
+
c = ServerMetrics::Cpu.new()
|
8
|
+
|
9
|
+
ServerMetrics::Cpu::CpuStats.expects(:`).with("cat /proc/stat 2>&1").returns(fixture.command("cat /proc/stat 2>&1")).once
|
10
|
+
c.expects(:`).with("uptime").returns(fixture.command("uptime")).once
|
11
|
+
|
12
|
+
c.run
|
13
|
+
assert c.data["Last minute"]
|
14
|
+
assert c.data["Last five minutes"]
|
15
|
+
assert c.data["Last fifteen minutes"]
|
16
|
+
assert_equal 3, c.data.keys.size
|
17
|
+
c
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_cpu_second_run
|
21
|
+
fixture = fixtures(:cpu)
|
22
|
+
c = test_cpu
|
23
|
+
|
24
|
+
ServerMetrics::Cpu::CpuStats.expects(:`).with("cat /proc/stat 2>&1").returns(fixture.command("cat /proc/stat 2>&1", "second run")).once
|
25
|
+
c.expects(:`).with("uptime").returns(fixture.command("uptime")).once
|
26
|
+
|
27
|
+
Timecop.travel(60) do
|
28
|
+
c.run
|
29
|
+
end
|
30
|
+
|
31
|
+
assert c.data["IO wait"]
|
32
|
+
assert c.data["Idle"]
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
# First run we get size info
|
37
|
+
def test_disk
|
38
|
+
c = ServerMetrics::Disk.new()
|
39
|
+
fixture = fixtures(:disk)
|
40
|
+
c.expects(:`).with("mount").returns(fixture.command("mount")).once
|
41
|
+
c.expects(:`).with("df -h").returns(fixture.command("df -h")).once
|
42
|
+
c.expects(:`).with("cat /proc/diskstats").returns(fixture.command("cat /proc/diskstats")).once
|
43
|
+
c.run
|
44
|
+
|
45
|
+
assert_equal ["/dev/xvda1"], c.data.keys
|
46
|
+
res = c.data["/dev/xvda1"]
|
47
|
+
|
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"]
|
54
|
+
assert_equal 6, res.keys.size
|
55
|
+
c
|
56
|
+
end
|
57
|
+
|
58
|
+
# Second run we also get counter data
|
59
|
+
def test_disk_second_run
|
60
|
+
c=test_disk
|
61
|
+
fixture = fixtures(:disk)
|
62
|
+
c.expects(:`).with("mount").returns(fixture.command("mount")).once
|
63
|
+
c.expects(:`).with("df -h").returns(fixture.command("df -h")).once
|
64
|
+
c.expects(:`).with("cat /proc/diskstats").returns(fixture.command("cat /proc/diskstats", "ubuntu second run")).once
|
65
|
+
|
66
|
+
Timecop.travel(60) do
|
67
|
+
c.run
|
68
|
+
end
|
69
|
+
|
70
|
+
assert_equal ["/dev/xvda1"], c.data.keys
|
71
|
+
res = c.data["/dev/xvda1"]
|
72
|
+
assert res["WPS"]
|
73
|
+
assert res["RPS"]
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_memory
|
77
|
+
fixture = fixtures(:memory)
|
78
|
+
c = ServerMetrics::Memory.new()
|
79
|
+
c.expects(:`).with("uname").returns("Linux").times(2)
|
80
|
+
c.expects(:`).with("cat /proc/meminfo").returns(fixture.command("cat /proc/meminfo")).once
|
81
|
+
c.run
|
82
|
+
assert_equal 7, c.data.keys.size
|
83
|
+
assert c.data['Swap total']
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_network
|
87
|
+
fixture = fixtures(:network)
|
88
|
+
c = ServerMetrics::Network.new()
|
89
|
+
c.expects(:`).with("cat /proc/net/dev").returns(fixture.command("cat /proc/net/dev")).once
|
90
|
+
c.run
|
91
|
+
|
92
|
+
c.expects(:`).with("cat /proc/net/dev").returns(fixture.command("cat /proc/net/dev", "second run")).once
|
93
|
+
Timecop.travel(60) do
|
94
|
+
c.run
|
95
|
+
end
|
96
|
+
|
97
|
+
assert c.data.keys.include?("eth0")
|
98
|
+
assert c.data.keys.include?("eth1")
|
99
|
+
assert_equal 2, c.data.keys.size
|
100
|
+
|
101
|
+
assert c.data["eth0"]["Bytes in"]
|
102
|
+
assert c.data["eth1"]["Bytes in"]
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
metadata
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: server_metrics
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andre Lewis
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sys-proctable
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
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
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.3'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
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'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
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
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
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
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
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
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
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
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Collect information about disks, memory, CPU, etc
|
127
|
+
email:
|
128
|
+
- andre@scoutapp.com
|
129
|
+
executables: []
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- .gitignore
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- example_processes.rb
|
139
|
+
- example_usage.rb
|
140
|
+
- lib/server_metrics.rb
|
141
|
+
- lib/server_metrics/collector.rb
|
142
|
+
- lib/server_metrics/collectors/cpu.rb
|
143
|
+
- lib/server_metrics/collectors/disk.rb
|
144
|
+
- lib/server_metrics/collectors/memory.rb
|
145
|
+
- lib/server_metrics/collectors/network.rb
|
146
|
+
- lib/server_metrics/collectors/processes.rb
|
147
|
+
- lib/server_metrics/multi_collector.rb
|
148
|
+
- lib/server_metrics/system_info.rb
|
149
|
+
- lib/server_metrics/version.rb
|
150
|
+
- server_metrics.gemspec
|
151
|
+
- test/fixtures/cpu.txt
|
152
|
+
- test/fixtures/disk.txt
|
153
|
+
- test/fixtures/memory.txt
|
154
|
+
- test/fixtures/network.txt
|
155
|
+
- test/test.rb
|
156
|
+
- test/test_basics.rb
|
157
|
+
- test/test_helper.rb
|
158
|
+
- test/test_with_fixtures.rb
|
159
|
+
homepage: http://scoutapp.com
|
160
|
+
licenses:
|
161
|
+
- MIT
|
162
|
+
post_install_message:
|
163
|
+
rdoc_options: []
|
164
|
+
require_paths:
|
165
|
+
- lib
|
166
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ! '>='
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
requirements: []
|
179
|
+
rubyforge_project:
|
180
|
+
rubygems_version: 1.8.25
|
181
|
+
signing_key:
|
182
|
+
specification_version: 3
|
183
|
+
summary: For use with the Scout agent
|
184
|
+
test_files:
|
185
|
+
- test/fixtures/cpu.txt
|
186
|
+
- test/fixtures/disk.txt
|
187
|
+
- test/fixtures/memory.txt
|
188
|
+
- test/fixtures/network.txt
|
189
|
+
- test/test.rb
|
190
|
+
- test/test_basics.rb
|
191
|
+
- test/test_helper.rb
|
192
|
+
- test/test_with_fixtures.rb
|
193
|
+
has_rdoc:
|