String returns a string representation of the stats (as is printed during interactive execution).
()
| 124 | |
| 125 | // String returns a string representation of the stats (as is printed during interactive execution). |
| 126 | func (s Stats) String() string { |
| 127 | buf := &bytes.Buffer{} |
| 128 | w := tabwriter.NewWriter(buf, 0, 0, 2, ' ', 0) |
| 129 | |
| 130 | fmt.Fprintln(w, "Metrics") |
| 131 | fmt.Fprintln(w, "=======") |
| 132 | |
| 133 | var segments []int |
| 134 | for i := len(s.Segments) - 1; i >= 0; i-- { |
| 135 | segments = append(segments, i) |
| 136 | } |
| 137 | |
| 138 | tabs := strings.Repeat("\t", len(segments)+2) |
| 139 | |
| 140 | if s.Skipped > 0 { |
| 141 | fmt.Fprintf(w, "Skipped:\t%d from previous runs\n", s.Skipped) |
| 142 | } |
| 143 | |
| 144 | fmt.Fprintf(w, "Concurrency:\t%d / %d workers in use\n", s.ConcurrencyCurrent, s.ConcurrencyMaximum) |
| 145 | fmt.Fprintf(w, "%s\n", tabs) |
| 146 | |
| 147 | fmt.Fprint(w, "Desired rate:\t(all)\t") |
| 148 | for _, i := range segments { |
| 149 | fmt.Fprintf(w, "%.0f\t", s.Segments[i].DesiredRate) |
| 150 | } |
| 151 | fmt.Fprintf(w, "%s\n", tabs) |
| 152 | |
| 153 | fmt.Fprint(w, "Actual rate:\t") |
| 154 | fmt.Fprintf(w, "%.0f\t", s.All.ActualRate) |
| 155 | for _, i := range segments { |
| 156 | fmt.Fprintf(w, "%.0f\t", s.Segments[i].ActualRate) |
| 157 | } |
| 158 | fmt.Fprintf(w, "%s\n", tabs) |
| 159 | |
| 160 | fmt.Fprint(w, "Avg concurrency:\t") |
| 161 | fmt.Fprintf(w, "%.0f\t", s.All.AverageConcurrency) |
| 162 | for _, i := range segments { |
| 163 | fmt.Fprintf(w, "%.0f\t", s.Segments[i].AverageConcurrency) |
| 164 | } |
| 165 | fmt.Fprintf(w, "%s\n", tabs) |
| 166 | |
| 167 | fmt.Fprint(w, "Duration:\t") |
| 168 | fmt.Fprintf(w, "%s\t", fmtDuration(s.All.Duration)) |
| 169 | for _, i := range segments { |
| 170 | fmt.Fprintf(w, "%s\t", fmtDuration(s.Segments[i].Duration)) |
| 171 | } |
| 172 | fmt.Fprintf(w, "%s\n", tabs) |
| 173 | |
| 174 | fmt.Fprintf(w, "%s\n", tabs) |
| 175 | fmt.Fprintf(w, "Total%s\n", tabs) |
| 176 | fmt.Fprintf(w, "-----%s\n", tabs) |
| 177 | |
| 178 | fmt.Fprintf(w, "Started:\t%d\t", s.All.Summary.Started) |
| 179 | for _, i := range segments { |
| 180 | fmt.Fprintf(w, "%d\t", s.Segments[i].Summary.Started) |
| 181 | } |
| 182 | fmt.Fprint(w, "\n") |
| 183 | fmt.Fprintf(w, "Finished:\t%d\t", s.All.Summary.Finished) |