herokubench 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/{hb → hbench} +0 -1
- data/lib/herokubench/cli.rb +18 -15
- data/lib/herokubench/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2M1MzM3ZTcwZTE3NDViYmJhNmYwYmI0ZmViNGU4OWYyY2Y3NjA0Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDVjOGUzNDdlNGFkZjIxOTc1ZDMwMzQ0NzEwN2Q4MjIyZjNiN2JmMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZmQ0NTk5Y2U4YmY4YjRjZGEzYTYwMTFhMjFmOTZhZmMzNDBlNWZkYTM2MWU2
|
10
|
+
ZmYyYTRiZDk0NTljNGM4ZTMzOTU3YTJmNjdmYTc2MWVkNTJlNGU3YzBjZmM4
|
11
|
+
YzQ2NGQ5ZTUwYjYwMDFhMDhhMTk1ZWU3NTMxY2E2ZGFkOGExODY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NzVjOTE1NmYzZWE5NDJhZGFjNTJlMDI1ZWQ1MTlkODUzNGZlMzc5MzZhNWU4
|
14
|
+
NGYwNTYwNGQ4NjIxM2E4NjJjYjJhNGI3ZmUwZmM0MjNmYzE0MDNlYmRjYTkz
|
15
|
+
NjI5YzkxOTBmNDFkNGY5Y2RkMzFjNWEyM2VhMmI5NmFiYmM4MTY=
|
data/bin/{hb → hbench}
RENAMED
data/lib/herokubench/cli.rb
CHANGED
@@ -28,8 +28,12 @@ class HerokuBench::CLI < Thor
|
|
28
28
|
:generic_result=> /^([\w\s]+):\s*([\d|\.]+)/,
|
29
29
|
:response_time_cdf=>/(\d+%)\s+(\d+)/
|
30
30
|
}
|
31
|
-
@@summable_fields = ["Complete requests","Failed requests", "Write errors"
|
32
|
-
|
31
|
+
@@summable_fields = ["Complete requests","Failed requests", "Write errors", "Requests per second",
|
32
|
+
"Total Transferred", "HTML transferred", "Concurrency Level"
|
33
|
+
]
|
34
|
+
@@medianable_fields = ["Connect", "Processing", "Waiting", "Total", "Time per request",
|
35
|
+
]
|
36
|
+
@@maxable_fields = ["50%", "66%", "75%", "80%", "90%", "95%", "98%", "99%","100%"]
|
33
37
|
|
34
38
|
class_options["verbose"] = false if class_options["verbose"].nil?
|
35
39
|
Heroku.user_agent = "heroku-gem/#{Heroku::VERSION} (#{RUBY_PLATFORM}) ruby/#{RUBY_VERSION}"
|
@@ -95,31 +99,29 @@ class HerokuBench::CLI < Thor
|
|
95
99
|
|
96
100
|
ab_command = "ab #{args.join(' ')}"
|
97
101
|
|
98
|
-
p_bar = ProgressBar.
|
102
|
+
p_bar = ProgressBar.create(:title=>'Benching',:total=>dynos, :smoothing => 0.6)
|
99
103
|
|
100
104
|
until n == dynos do
|
101
|
-
p_bar.inc
|
102
105
|
outputs.push Tempfile.new("hbench_out_#{n}")
|
103
106
|
pid = spawn( "ruby #{bencher_path} \"#{ab_command} \" --app #{config[:app]}", :out=>outputs[n].path)
|
104
107
|
pid_map[pid] = n
|
105
108
|
n += 1
|
106
109
|
end
|
107
110
|
|
108
|
-
p_bar.finish
|
109
|
-
p_bar = ProgressBar.new('Benching', dynos)
|
110
111
|
|
111
112
|
until n == 0 do
|
112
113
|
output = outputs[pid_map[Process.wait]]
|
113
|
-
|
114
|
-
|
114
|
+
if n ==1
|
115
|
+
last_output = output.read if n ==1
|
116
|
+
output.rewind
|
117
|
+
end
|
118
|
+
p_bar.increment
|
115
119
|
results.push get_result_hash output
|
116
120
|
output.unlink
|
117
121
|
n -= 1
|
118
122
|
end
|
119
123
|
|
120
|
-
|
121
|
-
|
122
|
-
if results.last.length ==3
|
124
|
+
if results.last.length == 3
|
123
125
|
summarize results
|
124
126
|
else
|
125
127
|
error last_output
|
@@ -147,13 +149,14 @@ class HerokuBench::CLI < Thor
|
|
147
149
|
result.each do |type, hash|
|
148
150
|
summary[type] = {} if summary[type].nil?
|
149
151
|
hash.each do |k,v|
|
150
|
-
puts k if v.nil?
|
151
152
|
summary[type][k] = [0.0] * v.length if summary[type][k].nil?
|
152
153
|
v.each_index do |i|
|
153
154
|
if not @@summable_fields.index(k).nil?
|
154
155
|
summary[type][k][i] += v[i]
|
155
156
|
elsif not @@medianable_fields.index(k).nil?
|
156
157
|
summary[type][k][i] += v[i] / results.length.to_f
|
158
|
+
elsif not @@maxable_fields.index(k).nil?
|
159
|
+
summary[type][k][i] = [v[i], summary[type][k][i]].max
|
157
160
|
else
|
158
161
|
summary[type][k][i] = v[i]
|
159
162
|
end
|
@@ -162,18 +165,18 @@ class HerokuBench::CLI < Thor
|
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
165
|
-
say "\tCumulative results"
|
168
|
+
say "\tCumulative results, summed across dynos"
|
166
169
|
say ""
|
167
170
|
summary[:generic_result].each{|k,v| say format(k+":",v, 25)}
|
168
171
|
|
169
172
|
say ""
|
170
|
-
say "\t Connection Times (ms)"
|
173
|
+
say "\t Connection Times (ms), median across dynos"
|
171
174
|
say format("",["min", "mean", "[+/-sd]" ,"median","max"],15)
|
172
175
|
summary[:connection_times].each{|k,v| say format(k+":",v, 15)}
|
173
176
|
|
174
177
|
say ""
|
175
178
|
say "\t Percentage of the requests served within a certain time (ms)"
|
176
|
-
say "\t
|
179
|
+
say "\t across dynos"
|
177
180
|
summary[:response_time_cdf].each{|k,v| say format(k+"",v, 15)}
|
178
181
|
end
|
179
182
|
|
data/lib/herokubench/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: herokubench
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cory Dolphin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: heroku
|
@@ -65,11 +65,11 @@ description: ! " Make it rain on the cloud.\n\n herokubench, or hb for
|
|
65
65
|
ab.\n\n Confused? Checkout `hb help`\n"
|
66
66
|
email: wcdolphin@gmail.com
|
67
67
|
executables:
|
68
|
-
-
|
68
|
+
- hbench
|
69
69
|
extensions: []
|
70
70
|
extra_rdoc_files: []
|
71
71
|
files:
|
72
|
-
- bin/
|
72
|
+
- bin/hbench
|
73
73
|
- lib/herokubench/bencher.rb
|
74
74
|
- lib/herokubench/cli.rb
|
75
75
|
- lib/herokubench/version.rb
|