CSV output for IOR results (#260)

This commit adds CSV output for IOR.
The output will just include the `Results` section.
All other sections are omitted, since it's hard to produce a useful csv
with all information included.
master
Sebastian Oeste 2020-10-09 10:35:01 +02:00 committed by GitHub
parent bd76b45ef9
commit 65ddc53950
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 33 additions and 11 deletions

View File

@ -20,6 +20,8 @@ void PrintTableHeader(){
fprintf(out_resultfile, "\n");
fprintf(out_resultfile, "access bw(MiB/s) IOPS Latency(s) block(KiB) xfer(KiB) open(s) wr/rd(s) close(s) total(s) iter\n");
fprintf(out_resultfile, "------ --------- ---- ---------- ---------- --------- -------- -------- -------- -------- ----\n");
}else if(outputFormat == OUTPUT_CSV){
fprintf(out_resultfile, "access,bw(MiB/s),IOPS,Latency,block(KiB),xfer(KiB),open(s),wr/rd(s),close(s),total(s),iter\n");
}
}
@ -45,8 +47,6 @@ static void PrintKeyValStart(char * key){
}
if(outputFormat == OUTPUT_JSON){
fprintf(out_resultfile, "\"%s\": \"", key);
}else if(outputFormat == OUTPUT_CSV){
}
}
@ -84,7 +84,7 @@ static void PrintKeyVal(char * key, char * value){
if(outputFormat == OUTPUT_JSON){
fprintf(out_resultfile, "\"%s\": \"%s\"", key, value);
}else if(outputFormat == OUTPUT_CSV){
fprintf(out_resultfile, "%s", value);
fprintf(out_resultfile, "%s,", value);
}
}
@ -98,7 +98,7 @@ static void PrintKeyValDouble(char * key, double value){
if(outputFormat == OUTPUT_JSON){
fprintf(out_resultfile, "\"%s\": %.4f", key, value);
}else if(outputFormat == OUTPUT_CSV){
fprintf(out_resultfile, "%.4f", value);
fprintf(out_resultfile, "%.4f,", value);
}
}
@ -113,7 +113,7 @@ static void PrintKeyValInt(char * key, int64_t value){
if(outputFormat == OUTPUT_JSON){
fprintf(out_resultfile, "\"%s\": %lld", key, (long long) value);
}else if(outputFormat == OUTPUT_CSV){
fprintf(out_resultfile, "%lld", (long long) value);
fprintf(out_resultfile, "%lld,", (long long) value);
}
}
@ -203,13 +203,16 @@ void PrintRepeatEnd(){
void PrintRepeatStart(){
if (rank != 0)
return;
if( outputFormat == OUTPUT_DEFAULT){
if(outputFormat == OUTPUT_DEFAULT){
return;
}
PrintArrayStart();
}
void PrintTestEnds(){
if (outputFormat == OUTPUT_CSV){
return;
}
if (rank != 0 || verbose <= VERBOSE_0) {
PrintEndSection();
return;
@ -246,7 +249,20 @@ void PrintReducedResult(IOR_test_t *test, int access, double bw, double iops, do
PrintKeyValDouble("closeTime", diff_subset[2]);
PrintKeyValDouble("totalTime", totalTime);
PrintEndSection();
}else if (outputFormat == OUTPUT_CSV){
PrintKeyVal("access", access == WRITE ? "write" : "read");
PrintKeyValDouble("bwMiB", bw / MEBIBYTE);
PrintKeyValDouble("iops", iops);
PrintKeyValDouble("latency", latency);
PrintKeyValDouble("blockKiB", (double)test->params.blockSize / KIBIBYTE);
PrintKeyValDouble("xferKiB", (double)test->params.transferSize / KIBIBYTE);
PrintKeyValDouble("openTime", diff_subset[0]);
PrintKeyValDouble("wrRdTime", diff_subset[1]);
PrintKeyValDouble("closeTime", diff_subset[2]);
PrintKeyValDouble("totalTime", totalTime);
fprintf(out_resultfile, "%d\n", rep);
}
fflush(out_resultfile);
}
@ -258,6 +274,10 @@ void PrintHeader(int argc, char **argv)
if (rank != 0)
return;
if (outputFormat == OUTPUT_CSV){
return;
}
PrintStartSection();
if (outputFormat != OUTPUT_DEFAULT){
PrintKeyVal("Version", META_VERSION);
@ -319,6 +339,9 @@ void PrintHeader(int argc, char **argv)
*/
void ShowTestStart(IOR_param_t *test)
{
if (outputFormat == OUTPUT_CSV){
return;
}
PrintStartSection();
PrintKeyValInt("TestID", test->id);
PrintKeyVal("StartTime", CurrentTimeString());
@ -401,6 +424,9 @@ void ShowTestEnd(IOR_test_t *tptr){
*/
void ShowSetup(IOR_param_t *params)
{
if (outputFormat == OUTPUT_CSV){
return;
}
if (params->debug) {
fprintf(out_logfile, "\n*** DEBUG MODE ***\n");
fprintf(out_logfile, "*** %s ***\n\n", params->debug);
@ -612,8 +638,6 @@ static void PrintLongSummaryOneOperation(IOR_test_t *test, const int access)
}
PrintKeyValDouble("xsizeMiB", (double) point->aggFileSizeForBW / MEBIBYTE);
PrintEndSection();
}else if (outputFormat == OUTPUT_CSV){
}
fflush(out_resultfile);
@ -638,7 +662,7 @@ void PrintLongSummaryHeader()
if (rank != 0 || verbose <= VERBOSE_0)
return;
if(outputFormat != OUTPUT_DEFAULT){
return;
return;
}
fprintf(out_resultfile, "\n");
@ -665,8 +689,6 @@ void PrintLongSummaryAllTests(IOR_test_t *tests_head)
fprintf(out_resultfile, "Summary of all tests:");
}else if (outputFormat == OUTPUT_JSON){
PrintNamedArrayStart("summary");
}else if (outputFormat == OUTPUT_CSV){
}
PrintLongSummaryHeader();