Skip to content

Commit

Permalink
added average latency contributions in verbose mode
Browse files Browse the repository at this point in the history
  • Loading branch information
rbarazzutti committed Dec 23, 2021
1 parent 688c2a5 commit 459649f
Showing 1 changed file with 34 additions and 7 deletions.
41 changes: 34 additions & 7 deletions app/httpping.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ func HTTPPing(config *Config, stdout io.Writer) {
var latencies []stats.Measure
attempts, failures := 0, 0

measureSum := &HTTPMeasure{}

var loop = true
for loop {
select {
Expand All @@ -69,13 +71,21 @@ func HTTPPing(config *Config, stdout io.Writer) {
_, _ = fmt.Fprintf(stdout, " tls version=%s\n", measure.TLSVersion)
}

_, _ = fmt.Fprintf(stdout, "\n")
measureSum.Total += measure.Total
measureSum.ConnDuration += measure.ConnDuration
measureSum.DNSDuration += measure.DNSDuration
measureSum.TCPHandshake += measure.TCPHandshake
measureSum.TLSDuration += measure.TLSDuration
measureSum.ReqDuration += measure.ReqDuration
measureSum.Wait += measure.Wait
measureSum.RespDuration += measure.RespDuration

l := measureToMeasureEntryVisits(measure)
_, _ = fmt.Fprintf(stdout, "\n")

_, _ = fmt.Fprintf(stdout, " latency contributions:\n")

drawEntryVisits(l, stdout)
drawMeasure(measure, stdout)

_, _ = fmt.Fprintf(stdout, "\n")
}
latencies = append(latencies, measure.Total)
Expand Down Expand Up @@ -105,15 +115,34 @@ func HTTPPing(config *Config, stdout io.Writer) {
lossRate = float64(100*failures) / float64(attempts)
}

success := int64(attempts - failures)

_, _ = fmt.Fprintf(stdout, "%d requests sent, %d answers received, %.1f%% loss\n", attempts, attempts-failures, lossRate)

if len(latencies) > 0 {
_, _ = fmt.Fprintf(stdout, "%s\n", stats.PingStatsFromLatencies(latencies).String())

if config.LogLevel == 2 {
measureSum.Total = stats.Measure(int64(measureSum.Total) / success)
measureSum.ConnDuration = stats.Measure(int64(measureSum.ConnDuration) / success)
measureSum.DNSDuration = stats.Measure(int64(measureSum.DNSDuration) / success)
measureSum.TCPHandshake = stats.Measure(int64(measureSum.TCPHandshake) / success)
measureSum.TLSDuration = stats.Measure(int64(measureSum.TLSDuration) / success)
measureSum.ReqDuration = stats.Measure(int64(measureSum.ReqDuration) / success)
measureSum.Wait = stats.Measure(int64(measureSum.Wait) / success)
measureSum.RespDuration = stats.Measure(int64(measureSum.RespDuration) / success)

measureSum.TLSEnabled = measureSum.TLSDuration > 0

_, _ = fmt.Fprintf(stdout, "\naverage latency contributions:\n")

drawMeasure(measureSum, stdout)
}
}

}

func measureToMeasureEntryVisits(measure *HTTPMeasure) []measureEntryVisit {
func drawMeasure(measure *HTTPMeasure, stdout io.Writer) {
entries := measureEntry{
label: "request and response",
duration: measure.Total,
Expand All @@ -133,10 +162,8 @@ func measureToMeasureEntryVisits(measure *HTTPMeasure) []measureEntryVisit {
entries.children[0].children = entries.children[0].children[0:2]
}

return makeTreeList(&entries)
}
l := makeTreeList(&entries)

func drawEntryVisits(l []measureEntryVisit, stdout io.Writer) {
for i, e := range l {
pipes := make([]string, e.depth)
for j := 0; j < e.depth; j++ {
Expand Down

0 comments on commit 459649f

Please sign in to comment.