stella 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
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
-