func NewRoundTripStats(m *memmetrics.RTMetrics) (*RoundTripStats, error) { codes := m.StatusCodesCounts() sc := make([]StatusCode, 0, len(codes)) for k, v := range codes { if v != 0 { sc = append(sc, StatusCode{Code: k, Count: v}) } } h, err := m.LatencyHistogram() if err != nil { return nil, err } return &RoundTripStats{ Counters: Counters{ NetErrors: m.NetworkErrorCount(), Total: m.TotalCount(), Period: m.CounterWindowSize(), StatusCodes: sc, }, LatencyBrackets: NewBrackets(h), }, nil }