analyze: aggregate read/write bytes delta by key

This commit is contained in:
Gyu-Ho Lee 2017-02-13 16:08:48 -08:00
parent 135855c993
commit fed5381fe2
No known key found for this signature in database
GPG Key ID: 1DDD39C7EB70C24C
1 changed files with 126 additions and 0 deletions

View File

@ -730,6 +730,80 @@ func do(configPath string) error {
return err return err
} }
} }
// KEYS, AVG-READ-BYTES-NUM-DELTA, AVG-READ-BYTES
plog.Info("combining all server read bytes delta by keys")
allReadBytesDeltaFrame := dataframe.New()
for _, databaseID := range cfg.AllDatabaseIDList {
testdata := cfg.DatabaseIDToTestData[databaseID]
fr, err := dataframe.NewFromCSV(nil, testdata.ServerReadBytesDeltaByKeyNumberPath)
if err != nil {
return err
}
colKeys, err := fr.Column("KEYS")
if err != nil {
return err
}
colKeys.UpdateHeader(makeHeader("KEYS", testdata.DatabaseTag))
if err = allReadBytesDeltaFrame.AddColumn(colKeys); err != nil {
return err
}
col1, err := fr.Column("AVG-READ-BYTES-NUM-DELTA")
if err != nil {
return err
}
col1.UpdateHeader(makeHeader("AVG-READ-BYTES-NUM-DELTA", testdata.DatabaseTag))
if err = allReadBytesDeltaFrame.AddColumn(col1); err != nil {
return err
}
col2, err := fr.Column("AVG-READ-BYTES")
if err != nil {
return err
}
col2.UpdateHeader(makeHeader("AVG-READ-BYTES", testdata.DatabaseTag))
if err = allReadBytesDeltaFrame.AddColumn(col2); err != nil {
return err
}
}
// KEYS, AVG-WRITE-BYTES-NUM-DELTA, AVG-WRITE-BYTES
plog.Info("combining all server write bytes delta by keys")
allWriteBytesDeltaFrame := dataframe.New()
for _, databaseID := range cfg.AllDatabaseIDList {
testdata := cfg.DatabaseIDToTestData[databaseID]
fr, err := dataframe.NewFromCSV(nil, testdata.ServerWriteBytesDeltaByKeyNumberPath)
if err != nil {
return err
}
colKeys, err := fr.Column("KEYS")
if err != nil {
return err
}
colKeys.UpdateHeader(makeHeader("KEYS", testdata.DatabaseTag))
if err = allWriteBytesDeltaFrame.AddColumn(colKeys); err != nil {
return err
}
col1, err := fr.Column("AVG-WRITE-BYTES-NUM-DELTA")
if err != nil {
return err
}
col1.UpdateHeader(makeHeader("AVG-WRITE-BYTES-NUM-DELTA", testdata.DatabaseTag))
if err = allWriteBytesDeltaFrame.AddColumn(col1); err != nil {
return err
}
col2, err := fr.Column("AVG-WRITE-BYTES")
if err != nil {
return err
}
col2.UpdateHeader(makeHeader("AVG-WRITE-BYTES", testdata.DatabaseTag))
if err = allWriteBytesDeltaFrame.AddColumn(col2); err != nil {
return err
}
}
{ {
allLatencyFrameCfg := dbtester.Plot{ allLatencyFrameCfg := dbtester.Plot{
@ -889,6 +963,58 @@ func do(configPath string) error {
return err return err
} }
} }
{
allReadBytesDeltaFrameCfg := dbtester.Plot{
Column: "AVG-READ-BYTES-NUM-DELTA",
XAxis: "Cumulative Number of Keys",
YAxis: "Average Read Bytes Delta by Keys",
OutputPathList: make([]string, len(cfg.PlotList[0].OutputPathList)),
}
allReadBytesDeltaFrameCfg.OutputPathList[0] = filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-READ-BYTES-NUM-DELTA-BY-KEY.svg")
allReadBytesDeltaFrameCfg.OutputPathList[1] = filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-READ-BYTES-NUM-DELTA-BY-KEY.png")
plog.Printf("plotting %v", allReadBytesDeltaFrameCfg.OutputPathList)
var pairs []pair
allCols := allReadBytesDeltaFrame.Columns()
for i := 0; i < len(allCols)-2; i += 3 {
pairs = append(pairs, pair{
x: allCols[i], // x
y: allCols[i+1], // avg
})
}
if err = all.drawXY(allReadBytesDeltaFrameCfg, pairs...); err != nil {
return err
}
csvPath := filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-READ-BYTES-NUM-DELTA-BY-KEY.csv")
if err := allReadBytesDeltaFrame.CSV(csvPath); err != nil {
return err
}
}
{
allWriteBytesDeltaFrameCfg := dbtester.Plot{
Column: "AVG-WRITE-BYTES-NUM-DELTA",
XAxis: "Cumulative Number of Keys",
YAxis: "Average Write Bytes Delta by Keys",
OutputPathList: make([]string, len(cfg.PlotList[0].OutputPathList)),
}
allWriteBytesDeltaFrameCfg.OutputPathList[0] = filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-WRITE-BYTES-NUM-DELTA-BY-KEY.svg")
allWriteBytesDeltaFrameCfg.OutputPathList[1] = filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-WRITE-BYTES-NUM-DELTA-BY-KEY.png")
plog.Printf("plotting %v", allWriteBytesDeltaFrameCfg.OutputPathList)
var pairs []pair
allCols := allWriteBytesDeltaFrame.Columns()
for i := 0; i < len(allCols)-2; i += 3 {
pairs = append(pairs, pair{
x: allCols[i], // x
y: allCols[i+1], // avg
})
}
if err = all.drawXY(allWriteBytesDeltaFrameCfg, pairs...); err != nil {
return err
}
csvPath := filepath.Join(filepath.Dir(cfg.PlotList[0].OutputPathList[0]), "AVG-WRITE-BYTES-NUM-DELTA-BY-KEY.csv")
if err := allWriteBytesDeltaFrame.CSV(csvPath); err != nil {
return err
}
}
plog.Println("combining data for plotting") plog.Println("combining data for plotting")
for _, plotConfig := range cfg.PlotList { for _, plotConfig := range cfg.PlotList {