Skip to content

Commit 2ea4aef

Browse files
authored
Merge pull request #20666 from kishen-v/address-benchmark-comments
benchmark: Minor tweaks to make the perfdash data more parseable
2 parents f9cf9c2 + c7c3ab4 commit 2ea4aef

File tree

4 files changed

+23
-22
lines changed

4 files changed

+23
-22
lines changed

pkg/report/perfdash.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"math"
2121
"os"
2222
"path/filepath"
23+
"strings"
2324
"time"
2425
)
2526

@@ -30,7 +31,7 @@ type Metrics struct {
3031
}
3132

3233
type Labels struct {
33-
Metric string `json:"Metric"`
34+
Operation string `json:"Operation"`
3435
}
3536

3637
type DataItem struct {
@@ -44,7 +45,7 @@ type perfdashFormattedReport struct {
4445
DataItems []DataItem `json:"dataItems"`
4546
}
4647

47-
func (r *report) writePerfDashReport(reportName string) {
48+
func (r *report) writePerfDashReport(benchmarkOp string) {
4849
pcls, data := Percentiles(r.stats.Lats)
4950
pclsData := make(map[float64]float64)
5051
for i := 0; i < len(pcls); i++ {
@@ -61,7 +62,7 @@ func (r *report) writePerfDashReport(reportName string) {
6162
},
6263
Unit: "ms",
6364
Labels: Labels{
64-
Metric: "APIResponsiveness",
65+
Operation: strings.ToUpper(benchmarkOp),
6566
},
6667
},
6768
},
@@ -73,7 +74,7 @@ func (r *report) writePerfDashReport(reportName string) {
7374
artifactsDir = "./_artifacts"
7475
}
7576

76-
fileName := fmt.Sprintf("etcd_perf_%s_%s.json", reportName, time.Now().UTC().Format(time.RFC3339))
77+
fileName := fmt.Sprintf("EtcdAPI_benchmark_%s.json", time.Now().UTC().Format(time.RFC3339))
7778
err := os.MkdirAll(artifactsDir, 0o755)
7879
if err != nil {
7980
fmt.Println("Error creating artifacts directory:", err)

pkg/report/report.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func (res *Result) Duration() time.Duration { return res.End.Sub(res.Start) }
4242

4343
type report struct {
4444
generatePerfReport bool
45-
reportName string
45+
benchmarkOp string
4646
precision string
4747
results chan Result
4848

@@ -83,23 +83,23 @@ type Report interface {
8383
Stats() <-chan Stats
8484
}
8585

86-
func NewReport(precision, reportName string, generatePerfReport bool) Report {
87-
return newReport(precision, reportName, generatePerfReport)
86+
func NewReport(precision, benchmarkOp string, generatePerfReport bool) Report {
87+
return newReport(precision, benchmarkOp, generatePerfReport)
8888
}
8989

90-
func newReport(precision, reportName string, generatePerfReport bool) *report {
90+
func newReport(precision, benchmarkOp string, generatePerfReport bool) *report {
9191
r := &report{
9292
results: make(chan Result, 16),
9393
precision: precision,
9494
generatePerfReport: generatePerfReport,
95-
reportName: reportName,
95+
benchmarkOp: benchmarkOp,
9696
}
9797
r.stats.ErrorDist = make(map[string]int)
9898
return r
9999
}
100100

101-
func NewReportSample(precision, reportName string, generatePerfReport bool) Report {
102-
r := NewReport(precision, reportName, generatePerfReport).(*report)
101+
func NewReportSample(precision, benchmarkOp string, generatePerfReport bool) Report {
102+
r := NewReport(precision, benchmarkOp, generatePerfReport).(*report)
103103
r.sps = newSecondPoints()
104104
return r
105105
}
@@ -112,7 +112,7 @@ func (r *report) Run() <-chan string {
112112
defer close(donec)
113113
r.processResults()
114114
if r.generatePerfReport {
115-
r.writePerfDashReport(r.reportName)
115+
r.writePerfDashReport(r.benchmarkOp)
116116
}
117117
donec <- r.String()
118118
}()
@@ -164,8 +164,8 @@ func (r *report) sec2str(sec float64) string { return fmt.Sprintf(r.precision+"
164164

165165
type reportRate struct{ *report }
166166

167-
func NewReportRate(precision, reportName string, generatePerfReport bool) Report {
168-
return &reportRate{NewReport(precision, reportName, generatePerfReport).(*report)}
167+
func NewReportRate(precision, benchmarkOp string, generatePerfReport bool) Report {
168+
return &reportRate{NewReport(precision, benchmarkOp, generatePerfReport).(*report)}
169169
}
170170

171171
func (r *reportRate) String() string {

pkg/report/weighted.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ type weightedReport struct {
3030

3131
// NewWeightedReport returns a report that includes
3232
// both weighted and unweighted statistics.
33-
func NewWeightedReport(r Report, precision, reportName string, generatePerfReport bool) Report {
33+
func NewWeightedReport(r Report, precision, benchmarkOp string, generatePerfReport bool) Report {
3434
return &weightedReport{
3535
baseReport: r,
36-
report: newReport(precision, reportName, generatePerfReport),
36+
report: newReport(precision, benchmarkOp, generatePerfReport),
3737
results: make(chan Result, 16),
3838
}
3939
}

tools/benchmark/cmd/util.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,24 +157,24 @@ func mustRandBytes(n int) []byte {
157157
return rb
158158
}
159159

160-
func newReport(reportName string) report.Report {
160+
func newReport(benchmarkOp string) report.Report {
161161
p := "%4.4f"
162162
if precise {
163163
p = "%g"
164164
}
165165
if sample {
166-
return report.NewReportSample(p, reportName, generatePerfReport)
166+
return report.NewReportSample(p, benchmarkOp, generatePerfReport)
167167
}
168-
return report.NewReport(p, reportName, generatePerfReport)
168+
return report.NewReport(p, benchmarkOp, generatePerfReport)
169169
}
170170

171-
func newWeightedReport(reportName string) report.Report {
171+
func newWeightedReport(benchmarkOp string) report.Report {
172172
p := "%4.4f"
173173
if precise {
174174
p = "%g"
175175
}
176176
if sample {
177-
return report.NewReportSample(p, reportName, generatePerfReport)
177+
return report.NewReportSample(p, benchmarkOp, generatePerfReport)
178178
}
179-
return report.NewWeightedReport(report.NewReport(p, reportName, generatePerfReport), p, reportName, generatePerfReport)
179+
return report.NewWeightedReport(report.NewReport(p, benchmarkOp, generatePerfReport), p, benchmarkOp, generatePerfReport)
180180
}

0 commit comments

Comments
 (0)