diff --git a/stats/cloud/data.go b/stats/cloud/data.go index 660524376143..ee6ce33e8f84 100644 --- a/stats/cloud/data.go +++ b/stats/cloud/data.go @@ -110,31 +110,22 @@ type SampleDataMap struct { // NewSampleFromTrail just creates a ready-to-send Sample instance // directly from a httpext.Trail. func NewSampleFromTrail(trail *httpext.Trail) *Sample { - var values map[string]float64 + length := 8 + if trail.Failed.Valid { + length++ + } + + values := make(map[string]float64, length) + values[metrics.HTTPReqs.Name] = 1 + values[metrics.HTTPReqDuration.Name] = stats.D(trail.Duration) + values[metrics.HTTPReqBlocked.Name] = stats.D(trail.Blocked) + values[metrics.HTTPReqConnecting.Name] = stats.D(trail.Connecting) + values[metrics.HTTPReqTLSHandshaking.Name] = stats.D(trail.TLSHandshaking) + values[metrics.HTTPReqSending.Name] = stats.D(trail.Sending) + values[metrics.HTTPReqWaiting.Name] = stats.D(trail.Waiting) + values[metrics.HTTPReqReceiving.Name] = stats.D(trail.Receiving) if trail.Failed.Valid { // this is done so the adding of 1 map element doesn't reexpand the map as this is a hotpath - values = map[string]float64{ - metrics.HTTPReqs.Name: 1, - metrics.HTTPReqDuration.Name: stats.D(trail.Duration), - metrics.HTTPReqBlocked.Name: stats.D(trail.Blocked), - metrics.HTTPReqConnecting.Name: stats.D(trail.Connecting), - metrics.HTTPReqTLSHandshaking.Name: stats.D(trail.TLSHandshaking), - metrics.HTTPReqSending.Name: stats.D(trail.Sending), - metrics.HTTPReqWaiting.Name: stats.D(trail.Waiting), - metrics.HTTPReqReceiving.Name: stats.D(trail.Receiving), - - metrics.HTTPReqFailed.Name: stats.B(trail.Failed.Bool), - } - } else { - values = map[string]float64{ - metrics.HTTPReqs.Name: 1, - metrics.HTTPReqDuration.Name: stats.D(trail.Duration), - metrics.HTTPReqBlocked.Name: stats.D(trail.Blocked), - metrics.HTTPReqConnecting.Name: stats.D(trail.Connecting), - metrics.HTTPReqTLSHandshaking.Name: stats.D(trail.TLSHandshaking), - metrics.HTTPReqSending.Name: stats.D(trail.Sending), - metrics.HTTPReqWaiting.Name: stats.D(trail.Waiting), - metrics.HTTPReqReceiving.Name: stats.D(trail.Receiving), - } + values[metrics.HTTPReqFailed.Name] = stats.B(trail.Failed.Bool) } return &Sample{ Type: DataTypeMap,