in dns/jsonify/main.go [79:132]
func run() error {
var benchmarkDirPath, jsonDirPath, benchmarkName string
flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
flag.StringVar(&benchmarkDirPath, "benchmarkDirPath", ".", "benchmark results directory path")
flag.StringVar(&jsonDirPath, "jsonDirPath", ".", "json results directory path")
flag.StringVar(&benchmarkName, "benchmarkName", ".", "benchmark name")
if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
return fmt.Errorf("flag parse failed: %v", err)
}
glog.Infof("benchmarkDirPath: %v\n", benchmarkDirPath)
glog.Infof("jsonDirPath: %v\n", jsonDirPath)
glog.Infof("benchmarkName: %v\n", benchmarkName)
latency := perftype.PerfData{Version: "v1"}
latencyPerc := perftype.PerfData{Version: "v1"}
queries := perftype.PerfData{Version: "v1"}
qps := perftype.PerfData{Version: "v1"}
fileList, err := getFileList(benchmarkDirPath)
if err != nil {
return fmt.Errorf("listing files error: %v", err)
}
for _, file := range fileList {
glog.Infof("processing %s\n", file)
result, err := readBenchmarkResult(filepath.Join(benchmarkDirPath, file))
if err != nil {
return err
}
labels := createLabels(&result.Params)
latency.DataItems = appendLatency(latency.DataItems, labels, result)
latencyPerc.DataItems = appendLatencyPerc(latencyPerc.DataItems, labels, result)
queries.DataItems = appendQueries(queries.DataItems, labels, result)
qps.DataItems = appendQPS(qps.DataItems, labels, result)
}
timeString := time.Now().Format(time.RFC3339)
if err = saveMetric(&latency, filepath.Join(jsonDirPath, "Latency_"+benchmarkName+"_"+timeString+".json")); err != nil {
return err
}
if err = saveMetric(&latencyPerc, filepath.Join(jsonDirPath, "LatencyPerc_"+benchmarkName+"_"+timeString+".json")); err != nil {
return err
}
if err = saveMetric(&queries, filepath.Join(jsonDirPath, "Queries_"+benchmarkName+"_"+timeString+".json")); err != nil {
return err
}
if err = saveMetric(&qps, filepath.Join(jsonDirPath, "QPS_"+benchmarkName+"_"+timeString+".json")); err != nil {
return err
}
return nil
}