stella 0.5.4 → 0.5.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.
Files changed (88) hide show
  1. data/README.textile +14 -10
  2. data/Rakefile +22 -36
  3. data/lib/daemonize.rb +56 -0
  4. data/lib/stella/adapter/ab.rb +49 -39
  5. data/lib/stella/adapter/base.rb +17 -8
  6. data/lib/stella/adapter/httperf.rb +24 -18
  7. data/lib/stella/adapter/pcap_watcher.rb +1 -1
  8. data/lib/stella/adapter/siege.rb +15 -12
  9. data/lib/stella/cli/localtest.rb +2 -3
  10. data/lib/stella/cli/sysinfo.rb +0 -1
  11. data/lib/stella/cli.rb +10 -55
  12. data/lib/stella/command/base.rb +0 -62
  13. data/lib/stella/command/localtest.rb +35 -36
  14. data/lib/stella/data/domain.rb +18 -11
  15. data/lib/stella/data/http.rb +23 -16
  16. data/lib/stella/logger.rb +29 -19
  17. data/lib/stella/response.rb +5 -2
  18. data/lib/stella/storable.rb +138 -52
  19. data/lib/stella/support.rb +107 -8
  20. data/lib/stella/sysinfo.rb +26 -16
  21. data/lib/stella/test/definition.rb +1 -1
  22. data/lib/stella/test/run/summary.rb +23 -13
  23. data/lib/stella/test/stats.rb +114 -0
  24. data/lib/stella/text/resource.rb +1 -1
  25. data/lib/stella.rb +29 -4
  26. data/lib/utils/mathutil.rb +0 -76
  27. data/lib/utils/stats.rb +88 -0
  28. data/lib/win32/Console/ANSI.rb +305 -305
  29. data/lib/win32/Console.rb +970 -970
  30. data/support/ruby-pcap-takuma-patch.txt +13 -13
  31. data/support/text/en.yaml +11 -8
  32. data/support/text/nl.yaml +7 -1
  33. data/{spec/show-agents_spec.rb → tests/01-util_test.rb} +0 -0
  34. data/tests/02-stella-util_test.rb +42 -0
  35. data/tests/10-stella_test.rb +104 -0
  36. data/tests/11-stella-storable_test.rb +68 -0
  37. data/tests/60-stella-command_test.rb +248 -0
  38. data/tests/80-stella-cli_test.rb +45 -0
  39. data/tests/spec-helper.rb +31 -0
  40. data/vendor/{frylock/README.textile → drydock/LICENSE.txt} +2 -52
  41. data/vendor/drydock/README.textile +57 -0
  42. data/vendor/{frylock → drydock}/bin/example +14 -14
  43. data/vendor/{frylock/frylock.gemspec → drydock/drydock.gemspec} +1 -1
  44. data/vendor/{frylock/lib/frylock → drydock/lib/drydock}/exceptions.rb +1 -1
  45. data/vendor/{frylock/lib/frylock.rb → drydock/lib/drydock.rb} +8 -8
  46. data/vendor/{frylock → drydock}/test/command_test.rb +0 -0
  47. metadata +34 -61
  48. data/lib/stella/test/base.rb +0 -38
  49. data/lib/stella/test/summary.rb +0 -82
  50. data/vendor/hitimes-0.4.0/HISTORY +0 -28
  51. data/vendor/hitimes-0.4.0/LICENSE.txt +0 -19
  52. data/vendor/hitimes-0.4.0/README +0 -80
  53. data/vendor/hitimes-0.4.0/Rakefile +0 -63
  54. data/vendor/hitimes-0.4.0/examples/benchmarks.rb +0 -86
  55. data/vendor/hitimes-0.4.0/examples/stats.rb +0 -29
  56. data/vendor/hitimes-0.4.0/ext/extconf.rb +0 -15
  57. data/vendor/hitimes-0.4.0/ext/hitimes_ext.c +0 -21
  58. data/vendor/hitimes-0.4.0/ext/hitimes_instant_clock_gettime.c +0 -20
  59. data/vendor/hitimes-0.4.0/ext/hitimes_instant_osx.c +0 -16
  60. data/vendor/hitimes-0.4.0/ext/hitimes_instant_windows.c +0 -27
  61. data/vendor/hitimes-0.4.0/ext/hitimes_interval.c +0 -340
  62. data/vendor/hitimes-0.4.0/ext/hitimes_interval.h +0 -73
  63. data/vendor/hitimes-0.4.0/ext/hitimes_stats.c +0 -242
  64. data/vendor/hitimes-0.4.0/ext/hitimes_stats.h +0 -30
  65. data/vendor/hitimes-0.4.0/ext/rbconfig-mingw.rb +0 -178
  66. data/vendor/hitimes-0.4.0/ext/rbconfig.rb +0 -178
  67. data/vendor/hitimes-0.4.0/gemspec.rb +0 -54
  68. data/vendor/hitimes-0.4.0/lib/hitimes/mutexed_stats.rb +0 -23
  69. data/vendor/hitimes-0.4.0/lib/hitimes/paths.rb +0 -54
  70. data/vendor/hitimes-0.4.0/lib/hitimes/stats.rb +0 -29
  71. data/vendor/hitimes-0.4.0/lib/hitimes/timer.rb +0 -223
  72. data/vendor/hitimes-0.4.0/lib/hitimes/version.rb +0 -42
  73. data/vendor/hitimes-0.4.0/lib/hitimes.rb +0 -24
  74. data/vendor/hitimes-0.4.0/spec/interval_spec.rb +0 -115
  75. data/vendor/hitimes-0.4.0/spec/mutex_stats_spec.rb +0 -34
  76. data/vendor/hitimes-0.4.0/spec/paths_spec.rb +0 -14
  77. data/vendor/hitimes-0.4.0/spec/spec_helper.rb +0 -6
  78. data/vendor/hitimes-0.4.0/spec/stats_spec.rb +0 -72
  79. data/vendor/hitimes-0.4.0/spec/timer_spec.rb +0 -105
  80. data/vendor/hitimes-0.4.0/spec/version_spec.rb +0 -27
  81. data/vendor/hitimes-0.4.0/tasks/announce.rake +0 -39
  82. data/vendor/hitimes-0.4.0/tasks/config.rb +0 -107
  83. data/vendor/hitimes-0.4.0/tasks/distribution.rake +0 -53
  84. data/vendor/hitimes-0.4.0/tasks/documentation.rake +0 -33
  85. data/vendor/hitimes-0.4.0/tasks/extension.rake +0 -64
  86. data/vendor/hitimes-0.4.0/tasks/rspec.rake +0 -31
  87. data/vendor/hitimes-0.4.0/tasks/rubyforge.rake +0 -52
  88. data/vendor/hitimes-0.4.0/tasks/utils.rb +0 -80
@@ -0,0 +1,57 @@
1
+ h1. Drydock - Easy Command line apps
2
+
3
+ Inspired by "github-gem":http://github.com/defunkt/github-gem
4
+
5
+ Inspired by "bmizerany-frylock":http://github.com/bmizerany/frylock/tree
6
+
7
+ h3. Overview
8
+
9
+ Drydock is a DSL for command line apps.
10
+
11
+ h3. Install
12
+
13
+ git clone git://github.com/delano/drydock.git
14
+
15
+
16
+ h3. Examples
17
+
18
+ See bin/example for more.
19
+
20
+ <pre><code>
21
+ require 'rubygems'
22
+ require 'drydock'
23
+
24
+ default :welcome
25
+
26
+ before do
27
+ # You can execute a block before the requests command is executed. Instance
28
+ # variables defined here will be available to all commands.
29
+ end
30
+
31
+ command :welcome do
32
+ # Example: ruby bin/example
33
+
34
+ puts "Meatwad: Science is a mystery to man, isn't it Frylock?"
35
+ print "Frylock: At least we have some commands: "
36
+
37
+ # The commands method returns a hash of Frylock::Command objects
38
+ puts commands.keys.inject([]) { |list, command| list << command.to_s }.sort.join(', ')
39
+ end
40
+
41
+ option :f, :found, "A boolean value. Did you find the car?"
42
+ command :findcar do |options|
43
+ # +options+ is a hash containing the options defined above
44
+ # Example: ruby bin/example -f findcar
45
+
46
+ puts "Frylock: So, did they ever find your car?"
47
+
48
+ # The keys to the hash are the long string from the option definition.
49
+ # If only the short string is provided, those will be used instead (i.e. :f).
50
+ puts (!options[:found]) ? "Carl: No" :
51
+ "Carl: Oh, they found part of it, hangin' from a trestle near the turnpike."
52
+ end
53
+ </code></pre>
54
+
55
+ h3. License
56
+
57
+ See LICENSE.txt
@@ -1,27 +1,27 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- FRYLOCK_HOME = File.expand_path(File.join(File.dirname(__FILE__), '..'))
4
- $: << File.join(FRYLOCK_HOME, 'lib')
3
+ DRYDOCK_HOME = File.expand_path(File.join(File.dirname(__FILE__), '..'))
4
+ $: << File.join(DRYDOCK_HOME, 'lib')
5
5
 
6
6
  require 'rubygems'
7
- require 'frylock'
7
+ require 'drydock'
8
8
 
9
- default :commands
9
+ default :welcome
10
10
 
11
11
 
12
12
  before do
13
- # You can execute a block before the requests command is executed. You
14
- # can use it to define instance variables here and use them in the commands
13
+ # You can execute a block before the requests command is executed. Instance
14
+ # variables defined here will be available to all commands.
15
15
  end
16
16
 
17
17
 
18
- command :commands do
19
- # Example: ruby bin/example welcome
18
+ command :welcome do
19
+ # Example: ruby bin/example
20
20
 
21
21
  puts "Meatwad: Science is a mystery to man, isn't it Frylock?"
22
22
  print "Frylock: At least we have some commands: "
23
23
 
24
- # The commands method returns a hash of Frylock::Command objects
24
+ # The commands method returns a hash of Drydock::Command objects
25
25
  puts commands.keys.inject([]) { |list, command| list << command.to_s }.sort.join(', ')
26
26
  end
27
27
 
@@ -143,21 +143,21 @@ end
143
143
  at_exit do
144
144
  # This is an example of how to call Frylock in your script.
145
145
  begin
146
- Frylock.run!(ARGV, STDIN)
146
+ Drydock.run!(ARGV, STDIN)
147
147
 
148
- rescue Frylock::UnknownCommand => ex
148
+ rescue Drydock::UnknownCommand => ex
149
149
  STDERR.puts "Frylock: I don't know what the #{ex.name} command is. #{$/}"
150
150
  STDERR.puts "Master Shake: I'll tell you what it is, friends... it's shut up and let me eat it."
151
151
 
152
- rescue Frylock::NoCommandsDefined => ex
152
+ rescue Drydock::NoCommandsDefined => ex
153
153
  STDERR.puts "Frylock: Carl, I don't want it. And I'd appreciate it if you'd define at least one command. #{$/}"
154
154
  STDERR.puts "Carl: Fryman, don't be that way! This sorta thing happens every day! People just don't... you know, talk about it this loud."
155
155
 
156
- rescue Frylock::InvalidArgument => ex
156
+ rescue Drydock::InvalidArgument => ex
157
157
  STDERR.puts "Frylock: Shake, how many arguments have you not provided a value for this year? #{$/}"
158
158
  STDERR.puts "Master Shake: A *lot* more than *you* have! (#{@args.join(', ')})"
159
159
 
160
- rescue Frylock::MissingArgument => ex
160
+ rescue Drydock::MissingArgument => ex
161
161
  STDERR.puts "Frylock: I don't know what #{ex.args.join(', ')} is. #{$/}"
162
162
  STDERR.puts "Master Shake: I'll tell you what it is, friends... it's shut up and let me eat it."
163
163
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{frylock}
3
- s.version = "0.1.0"
3
+ s.version = "0.2.0"
4
4
 
5
5
  s.specification_version = 1 if s.respond_to? :specification_version=
6
6
 
@@ -1,4 +1,4 @@
1
- module Frylock
1
+ module Drylock
2
2
 
3
3
  class UnknownCommand < RuntimeError
4
4
  attr_reader :name
@@ -2,9 +2,9 @@ require 'optparse'
2
2
  require 'ostruct'
3
3
  require 'pp'
4
4
 
5
- require 'frylock/exceptions'
5
+ require 'drydock/exceptions'
6
6
 
7
- module Frylock
7
+ module Drydock
8
8
  class Command
9
9
  attr_reader :cmd, :index
10
10
  def initialize(cmd, index, &b)
@@ -23,7 +23,7 @@ module Frylock
23
23
  end
24
24
  end
25
25
 
26
- module Frylock
26
+ module Drydock
27
27
  extend self
28
28
 
29
29
  FORWARDED_METHODS = %w(command before alias_command global_option global_usage usage option stdin default commands).freeze
@@ -179,9 +179,9 @@ module Frylock
179
179
 
180
180
 
181
181
  rescue OptionParser::InvalidOption => ex
182
- raise Frylock::InvalidArgument.new(ex.args)
182
+ raise Drydock::InvalidArgument.new(ex.args)
183
183
  rescue OptionParser::MissingArgument => ex
184
- raise Frylock::MissingArgument.new(ex.args)
184
+ raise Drydock::MissingArgument.new(ex.args)
185
185
  end
186
186
 
187
187
 
@@ -219,10 +219,10 @@ module Frylock
219
219
 
220
220
  end
221
221
 
222
- Frylock::FORWARDED_METHODS.each do |m|
223
- eval(<<-end_eval, binding, "(Frylock)", __LINE__)
222
+ Drydock::FORWARDED_METHODS.each do |m|
223
+ eval(<<-end_eval, binding, "(Drydock)", __LINE__)
224
224
  def #{m}(*args, &b)
225
- Frylock.#{m}(*args, &b)
225
+ Drydock.#{m}(*args, &b)
226
226
  end
227
227
  end_eval
228
228
  end
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stella
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -9,9 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-07 00:00:00 -05:00
12
+ date: 2009-01-14 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mongrel
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
15
25
  - !ruby/object:Gem::Dependency
16
26
  name: rspec
17
27
  type: :runtime
@@ -45,6 +55,7 @@ files:
45
55
  - Rakefile
46
56
  - bin/stella
47
57
  - bin/stella.bat
58
+ - lib/daemonize.rb
48
59
  - lib/pcaplet.rb
49
60
  - lib/stella
50
61
  - lib/stella/adapter
@@ -74,11 +85,10 @@ files:
74
85
  - lib/stella/support.rb
75
86
  - lib/stella/sysinfo.rb
76
87
  - lib/stella/test
77
- - lib/stella/test/base.rb
78
88
  - lib/stella/test/definition.rb
79
89
  - lib/stella/test/run
80
90
  - lib/stella/test/run/summary.rb
81
- - lib/stella/test/summary.rb
91
+ - lib/stella/test/stats.rb
82
92
  - lib/stella/text
83
93
  - lib/stella/text/resource.rb
84
94
  - lib/stella/text.rb
@@ -90,13 +100,20 @@ files:
90
100
  - lib/utils/fileutil.rb
91
101
  - lib/utils/httputil.rb
92
102
  - lib/utils/mathutil.rb
103
+ - lib/utils/stats.rb
93
104
  - lib/utils/textgraph.rb
94
105
  - lib/utils/timerutil.rb
95
106
  - lib/win32
96
107
  - lib/win32/Console
97
108
  - lib/win32/Console/ANSI.rb
98
109
  - lib/win32/Console.rb
99
- - spec/show-agents_spec.rb
110
+ - tests/01-util_test.rb
111
+ - tests/02-stella-util_test.rb
112
+ - tests/10-stella_test.rb
113
+ - tests/11-stella-storable_test.rb
114
+ - tests/60-stella-command_test.rb
115
+ - tests/80-stella-cli_test.rb
116
+ - tests/spec-helper.rb
100
117
  - support/kvm.h
101
118
  - support/ruby-pcap-takuma-notes.txt
102
119
  - support/ruby-pcap-takuma-patch.txt
@@ -104,63 +121,19 @@ files:
104
121
  - support/text/en.yaml
105
122
  - support/text/nl.yaml
106
123
  - support/useragents.txt
124
+ - vendor/drydock
125
+ - vendor/drydock/bin
126
+ - vendor/drydock/bin/example
127
+ - vendor/drydock/drydock.gemspec
128
+ - vendor/drydock/lib
129
+ - vendor/drydock/lib/drydock
130
+ - vendor/drydock/lib/drydock/exceptions.rb
131
+ - vendor/drydock/lib/drydock.rb
132
+ - vendor/drydock/LICENSE.txt
133
+ - vendor/drydock/README.textile
134
+ - vendor/drydock/test
135
+ - vendor/drydock/test/command_test.rb
107
136
  - vendor/frylock
108
- - vendor/frylock/bin
109
- - vendor/frylock/bin/example
110
- - vendor/frylock/frylock.gemspec
111
- - vendor/frylock/lib
112
- - vendor/frylock/lib/frylock
113
- - vendor/frylock/lib/frylock/exceptions.rb
114
- - vendor/frylock/lib/frylock.rb
115
- - vendor/frylock/README.textile
116
- - vendor/frylock/test
117
- - vendor/frylock/test/command_test.rb
118
- - vendor/hitimes-0.4.0
119
- - vendor/hitimes-0.4.0/examples
120
- - vendor/hitimes-0.4.0/examples/benchmarks.rb
121
- - vendor/hitimes-0.4.0/examples/stats.rb
122
- - vendor/hitimes-0.4.0/ext
123
- - vendor/hitimes-0.4.0/ext/extconf.rb
124
- - vendor/hitimes-0.4.0/ext/hitimes_ext.c
125
- - vendor/hitimes-0.4.0/ext/hitimes_instant_clock_gettime.c
126
- - vendor/hitimes-0.4.0/ext/hitimes_instant_osx.c
127
- - vendor/hitimes-0.4.0/ext/hitimes_instant_windows.c
128
- - vendor/hitimes-0.4.0/ext/hitimes_interval.c
129
- - vendor/hitimes-0.4.0/ext/hitimes_interval.h
130
- - vendor/hitimes-0.4.0/ext/hitimes_stats.c
131
- - vendor/hitimes-0.4.0/ext/hitimes_stats.h
132
- - vendor/hitimes-0.4.0/ext/rbconfig-mingw.rb
133
- - vendor/hitimes-0.4.0/ext/rbconfig.rb
134
- - vendor/hitimes-0.4.0/gemspec.rb
135
- - vendor/hitimes-0.4.0/HISTORY
136
- - vendor/hitimes-0.4.0/lib
137
- - vendor/hitimes-0.4.0/lib/hitimes
138
- - vendor/hitimes-0.4.0/lib/hitimes/mutexed_stats.rb
139
- - vendor/hitimes-0.4.0/lib/hitimes/paths.rb
140
- - vendor/hitimes-0.4.0/lib/hitimes/stats.rb
141
- - vendor/hitimes-0.4.0/lib/hitimes/timer.rb
142
- - vendor/hitimes-0.4.0/lib/hitimes/version.rb
143
- - vendor/hitimes-0.4.0/lib/hitimes.rb
144
- - vendor/hitimes-0.4.0/LICENSE.txt
145
- - vendor/hitimes-0.4.0/Rakefile
146
- - vendor/hitimes-0.4.0/README
147
- - vendor/hitimes-0.4.0/spec
148
- - vendor/hitimes-0.4.0/spec/interval_spec.rb
149
- - vendor/hitimes-0.4.0/spec/mutex_stats_spec.rb
150
- - vendor/hitimes-0.4.0/spec/paths_spec.rb
151
- - vendor/hitimes-0.4.0/spec/spec_helper.rb
152
- - vendor/hitimes-0.4.0/spec/stats_spec.rb
153
- - vendor/hitimes-0.4.0/spec/timer_spec.rb
154
- - vendor/hitimes-0.4.0/spec/version_spec.rb
155
- - vendor/hitimes-0.4.0/tasks
156
- - vendor/hitimes-0.4.0/tasks/announce.rake
157
- - vendor/hitimes-0.4.0/tasks/config.rb
158
- - vendor/hitimes-0.4.0/tasks/distribution.rake
159
- - vendor/hitimes-0.4.0/tasks/documentation.rake
160
- - vendor/hitimes-0.4.0/tasks/extension.rake
161
- - vendor/hitimes-0.4.0/tasks/rspec.rake
162
- - vendor/hitimes-0.4.0/tasks/rubyforge.rake
163
- - vendor/hitimes-0.4.0/tasks/utils.rb
164
137
  - vendor/useragent
165
138
  - vendor/useragent/init.rb
166
139
  - vendor/useragent/lib
@@ -1,38 +0,0 @@
1
-
2
- module Stella::Test
3
-
4
- module Base
5
-
6
- attr_reader :message
7
- attr_reader :elapsed_time_avg, :transaction_rate_avg, :vusers_avg, :response_time_avg
8
- attr_reader :elapsed_time_sdev, :transaction_rate_sdev, :vusers_sdev, :response_time_sdev
9
- attr_accessor :transactions_total, :headers_transferred_total, :data_transferred_total
10
- attr_accessor :successful_total, :failed_total, :elapsed_time_total, :throughput_avg, :throughput_sdev
11
-
12
- def availability
13
- return 0 if @successful_total == 0
14
- begin
15
- (@transactions_total / @successful_total).to_f * 100
16
- rescue => ex
17
- 0.0
18
- end
19
- end
20
-
21
-
22
- # Defines the fields the are output by to_hash and to_csv.
23
- # For to_csv, this also determines the field order
24
- def field_names
25
- [
26
- :message,
27
- :elapsed_time_avg, :transaction_rate_avg, :vusers_avg, :response_time_avg,
28
- :elapsed_time_sdev, :transaction_rate_sdev, :vusers_sdev, :response_time_sdev,
29
-
30
- :transactions_total, :successful_total, :failed_total,
31
- :data_transferred_total, :headers_transferred_total,
32
-
33
- :elapsed_time_total, :availability, :throughput_avg, :throughput_sdev
34
- ]
35
- end
36
-
37
- end
38
- end
@@ -1,82 +0,0 @@
1
-
2
- require 'stella/test/base'
3
-
4
- module Stella::Test
5
-
6
- # Stella::Test::Summary
7
- class Summary < Stella::Storable
8
- include Base
9
-
10
- attr_reader :runs
11
-
12
- def initialize(msg="")
13
- @message = msg
14
- @runs = []
15
- end
16
-
17
- # Add a TestRun object to the list
18
- def add_run(run)
19
- raise "I got a #{run.class} but I wanted a Run::Summary" unless run.is_a?(Run::Summary)
20
- @runs << run
21
- calculate
22
- end
23
-
24
- private
25
- def calculate
26
- # We simply keep a running tally of these
27
- @transactions_total = 0
28
- @headers_transferred_total = 0
29
- @data_transferred_total = 0
30
- @elapsed_time_total = 0
31
- @successful_total = 0
32
- @failed_total = 0
33
-
34
- # We keep a list of the values for averaging and std dev
35
- elapsed_times = []
36
- transaction_rates = []
37
- vusers_list = []
38
- response_times = []
39
- response_time = []
40
- transaction_rate = []
41
- throughput = []
42
- vusers = []
43
-
44
- # Each run is the summary of a single run (i.e. run01/SUMMARY.csv)
45
- runs.each do |run|
46
- # These are totaled
47
- @transactions_total += run.transactions
48
- @headers_transferred_total += run.headers_transferred
49
- @data_transferred_total += run.data_transferred
50
- @successful_total += run.successful
51
- @failed_total += run.failed
52
- @elapsed_time_total += run.elapsed_time
53
-
54
- # These are used for standard deviation
55
- elapsed_times << run.elapsed_time
56
- transaction_rates << run.transaction_rate
57
- vusers_list << run.vusers
58
- response_times << run.response_time
59
- throughput << run.throughput
60
- response_time << run.response_time
61
- transaction_rate << run.transaction_rate
62
- vusers << run.vusers
63
- end
64
-
65
- # Calculate Averages
66
- @elapsed_time_avg = elapsed_times.average
67
- @throughput_avg = throughput.average
68
- @response_time_avg = response_time.average
69
- @transaction_rate_avg = transaction_rate.average
70
- @vusers_avg = vusers.average
71
-
72
- # Calculate Standard Deviations
73
- @elapsed_time_sdev = elapsed_times.standard_deviation
74
- @throughput_sdev= throughput.standard_deviation
75
- @transaction_rate_sdev = transaction_rates.standard_deviation
76
- @vusers_sdev = vusers_list.standard_deviation
77
- @response_time_sdev = response_times.standard_deviation
78
-
79
- end
80
- end
81
-
82
- end
@@ -1,28 +0,0 @@
1
- = Changelog
2
- == Version 0.4.0 2008-12-20
3
-
4
- * Added new stat 'rate'
5
- * Added new stat method to_hash
6
- * Added MutexedStats class for threadsafe stats collection
7
- - not needed when used in MRI 1.8.x
8
- * remove stale dependency on mkrf
9
-
10
- == Version 0.3.0
11
-
12
- * switched to extconf for building extensions
13
- * first release of windows binary gem
14
- * reverted back to normal rdoc
15
-
16
- == Version 0.2.1
17
-
18
- * added Timer#rate method
19
- * switched to darkfish rdoc
20
-
21
- == Version 0.2.0
22
-
23
- * Performance improvements
24
- * Added Stats class
25
-
26
- == Version 0.1.0
27
-
28
- * Initial completion
@@ -1,19 +0,0 @@
1
- Copyright (c) 2008 Jeremy Hinegardner
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- this software and associated documentation files (the "Software"), to deal in
5
- the Software without restriction, including without limitation the rights to
6
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
- of the Software, and to permit persons to whom the Software is furnished to do
8
- so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- SOFTWARE.
@@ -1,80 +0,0 @@
1
- == hitimes
2
-
3
- * Homepage[http://copiousfreetime.rubyforge.org/hitimes]
4
- * {Rubyforge project}[http://rubyforge.org/projects/copiousfreetime/]
5
- * email jeremy at copiousfreetime dot org
6
- * git clone url git://github.com/copiousfreetime/hitimes.git
7
-
8
- == INSTALL
9
-
10
- * gem install hitimes
11
-
12
- == DESCRIPTION
13
-
14
- Hitimes is a fast, high resolution timer library for recording
15
- performance metrics. It uses the appropriate C method calls for each
16
- system to get the highest granularity time increments possible.
17
-
18
- It currently supports any system with the POSIX call clock_gettime(),
19
- Mac OS X and Windows.
20
-
21
- Using Hitimes can be faster than using a series of Time.new calls, and
22
- it will have a much higher granularity. It is definitely faster than
23
- using Process.times.
24
-
25
- == SYNOPSIS
26
-
27
- Use Hitimes::Interval to calculate only the duration of a block of code
28
-
29
- duration = Hitimes::Interval.measure do
30
- # some operation ...
31
- end
32
-
33
- puts duration
34
-
35
- Use a Hitimes::Timer to calculate statistics about an iterative operation
36
-
37
- timer = Hitimes::Timer.new
38
- collection.each do |item|
39
- timer.start
40
- # .. do something with item
41
- timer.stop
42
- end
43
-
44
- puts timer.mean
45
- puts timer.median
46
- puts timer.max
47
- puts timer.min
48
- puts timer.stddev
49
- puts timer.rate
50
-
51
-
52
- == CHANGES
53
-
54
- Read the HISTORY file.
55
-
56
- == CREDITS
57
-
58
- * Bruce Williams for suggesting the idea
59
-
60
- == MIT LICENSE
61
-
62
- Copyright (c) 2008 Jeremy Hinegardner
63
-
64
- Permission is hereby granted, free of charge, to any person obtaining a copy of
65
- this software and associated documentation files (the "Software"), to deal in
66
- the Software without restriction, including without limitation the rights to
67
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
68
- of the Software, and to permit persons to whom the Software is furnished to do
69
- so, subject to the following conditions:
70
-
71
- The above copyright notice and this permission notice shall be included in all
72
- copies or substantial portions of the Software.
73
-
74
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
75
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
76
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
77
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
78
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
79
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
80
- SOFTWARE.
@@ -1,63 +0,0 @@
1
- #--
2
- # Copyright (c) 2008 Jeremy Hinegardner
3
- # All rights reserved. See LICENSE and/or COPYING for details.
4
- #++
5
-
6
- #-------------------------------------------------------------------------------
7
- # make sure our project's top level directory and the lib directory are added to
8
- # the ruby search path.
9
- #-------------------------------------------------------------------------------
10
- $: << File.expand_path(File.join(File.dirname(__FILE__),"ext"))
11
- $: << File.expand_path(File.join(File.dirname(__FILE__),"lib"))
12
- $: << File.expand_path(File.dirname(__FILE__))
13
-
14
-
15
- #-------------------------------------------------------------------------------
16
- # load the global project configuration and add in the top level clean and
17
- # clobber tasks so that other tasks can utilize those constants if necessary
18
- # This loads up the defaults for the whole project configuration
19
- #-------------------------------------------------------------------------------
20
- require 'rubygems'
21
- require 'tasks/config.rb'
22
- require 'rake/clean'
23
-
24
- #-------------------------------------------------------------------------------
25
- # Main configuration for the project, these overwrite the items that are in
26
- # tasks/config.rb
27
- #-------------------------------------------------------------------------------
28
- require 'hitimes/version'
29
- require 'hitimes/paths'
30
-
31
- Configuration.for("project") {
32
- name "hitimes"
33
- version Hitimes::VERSION
34
- author "Jeremy Hinegardner"
35
- email "jeremy@copiousfreetime.org"
36
- homepage "http://copiousfreetime.rubyforge.org/hitimes/"
37
- }
38
-
39
- #-------------------------------------------------------------------------------
40
- # load up all the project tasks and setup the default task to be the
41
- # test:default task.
42
- #-------------------------------------------------------------------------------
43
- Configuration.for("packaging").files.tasks.each do |tasklib|
44
- import tasklib
45
- end
46
- task :default => 'test:default'
47
-
48
- #-------------------------------------------------------------------------------
49
- # Finalize the loading of all pending imports and update the top level clobber
50
- # task to depend on all possible sub-level tasks that have a name like
51
- # ':clobber' in other namespaces. This allows us to say:
52
- #
53
- # rake clobber
54
- #
55
- # and it will get everything.
56
- #-------------------------------------------------------------------------------
57
- Rake.application.load_imports
58
- Rake.application.tasks.each do |t|
59
- if t.name =~ /:clobber/ then
60
- task :clobber => [t.name]
61
- end
62
- end
63
-