Skip to content

Commit 4a5f7ec

Browse files
committed
Update load.go
1 parent 520f87f commit 4a5f7ec

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

dev/load.go

+30-16
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,21 @@ const (
5151

5252
// other options
5353
_printSuccessDots = true
54-
_printFailures = true
54+
_printHTTPErrors = true
55+
_printGoErrors = true
5556
)
5657

5758
type Counter struct {
5859
sync.Mutex
5960
count int64
6061
}
6162

62-
var _requestCount = atomic.Uint64{}
63-
var _successCount = atomic.Uint64{}
64-
var _failureCount = atomic.Uint64{}
63+
var (
64+
_requestCount = atomic.Uint64{}
65+
_successCount = atomic.Uint64{}
66+
_httpErrCount = atomic.Uint64{} // HTTP error response codes
67+
_goErrCount = atomic.Uint64{} // actual errors in go (includes "connection reset by peer")
68+
)
6569

6670
var _client = &http.Client{
6771
Timeout: 0, // no timeout
@@ -83,7 +87,9 @@ func main() {
8387

8488
url, jsonPathOrString := mustExtractArgs()
8589
var jsonBytes []byte
86-
if strings.HasPrefix(jsonPathOrString, "{") {
90+
if jsonPathOrString == "" {
91+
jsonBytes = nil
92+
} else if strings.HasPrefix(jsonPathOrString, "{") {
8793
jsonBytes = []byte(jsonPathOrString)
8894
} else {
8995
jsonBytes = mustReadJSONBytes(jsonPathOrString)
@@ -124,7 +130,7 @@ FOR_LOOP:
124130

125131
elapsed := time.Since(start)
126132
requestRate := float64(_requestCount.Load()) / elapsed.Seconds()
127-
fmt.Printf("\nelapsed time: %s | %d requests @ %f req/s | %d succeeded | %d failed\n", elapsed, _requestCount.Load(), requestRate, _successCount.Load(), _failureCount.Load())
133+
fmt.Printf("\nelapsed time: %s | %d requests @ %f req/s | %d succeeded | %d http errors | %d go errors\n", elapsed, _requestCount.Load(), requestRate, _successCount.Load(), _httpErrCount.Load(), _goErrCount.Load())
128134
}
129135

130136
func runConstantRequestsPerSecondIteration(url string, jsonBytes []byte, inFlightCount *Counter, done chan bool) {
@@ -161,7 +167,8 @@ func runConstantInFlight(url string, jsonBytes []byte) {
161167

162168
var summedRequestCount uint64
163169
var summedSuccessCount uint64
164-
var summedFailureCount uint64
170+
var summedHTTPErrCount uint64
171+
var summedGoErrCount uint64
165172

166173
start := time.Now()
167174
loopNum := 1
@@ -170,10 +177,13 @@ func runConstantInFlight(url string, jsonBytes []byte) {
170177

171178
summedRequestCount += _requestCount.Load()
172179
summedSuccessCount += _successCount.Load()
173-
summedFailureCount += _failureCount.Load()
180+
summedHTTPErrCount += _httpErrCount.Load()
181+
summedGoErrCount += _goErrCount.Load()
182+
174183
_requestCount.Store(0)
175184
_successCount.Store(0)
176-
_failureCount.Store(0)
185+
_httpErrCount.Store(0)
186+
_goErrCount.Store(0)
177187

178188
if loopNum >= _numMainLoops || wasKilled {
179189
break
@@ -184,7 +194,7 @@ func runConstantInFlight(url string, jsonBytes []byte) {
184194
if _numMainLoops > 1 {
185195
elapsed := time.Since(start)
186196
requestRate := float64(summedRequestCount) / elapsed.Seconds()
187-
fmt.Printf("\ntotal elapsed time: %s | %d requests @ %f req/s | %d succeeded | %d failed\n", elapsed, summedRequestCount, requestRate, summedSuccessCount, summedFailureCount)
197+
fmt.Printf("\ntotal elapsed time: %s | %d requests @ %f req/s | %d succeeded | %d http errors | %d go errors\n", elapsed, summedRequestCount, requestRate, summedSuccessCount, summedHTTPErrCount, summedGoErrCount)
188198
}
189199
}
190200

@@ -227,7 +237,7 @@ LOOP:
227237

228238
elapsed := time.Now().Sub(start)
229239
requestRate := float64(_requestCount.Load()) / elapsed.Seconds()
230-
fmt.Printf("\nelapsed time: %s | %d requests @ %f req/s | %d succeeded | %d failed\n", elapsed, _requestCount.Load(), requestRate, _successCount.Load(), _failureCount.Load())
240+
fmt.Printf("\nelapsed time: %s | %d requests @ %f req/s | %d succeeded | %d http errors | %d go errors\n", elapsed, _requestCount.Load(), requestRate, _successCount.Load(), _httpErrCount.Load(), _goErrCount.Load())
231241

232242
return wasKilled
233243
}
@@ -260,22 +270,26 @@ func makeRequest(url string, jsonBytes []byte) {
260270
}
261271

262272
request.Header.Set("Content-Type", "application/json")
273+
274+
_requestCount.Inc()
275+
263276
response, err := _client.Do(request)
264277
if err != nil {
265-
fmt.Print("\n" + debug.Sppg(err))
278+
_goErrCount.Inc()
279+
if _printGoErrors {
280+
fmt.Print("\n" + debug.Sppg(err))
281+
}
266282
return
267283
}
268284

269285
body, bodyReadErr := ioutil.ReadAll(response.Body)
270286
response.Body.Close()
271287

272-
_requestCount.Inc()
273-
274288
if response.StatusCode == 200 {
275289
_successCount.Inc()
276290
} else {
277-
_failureCount.Inc()
278-
if _printFailures {
291+
_httpErrCount.Inc()
292+
if _printHTTPErrors {
279293
if bodyReadErr == nil {
280294
fmt.Printf("\nstatus code: %d; body: %s\n", response.StatusCode, string(body))
281295
} else {

0 commit comments

Comments
 (0)