FrontPage 

Fuego 1.0 wiki

Login

Report Generator in 'raw' format

Fuego includes a report generator.

Here are some details about this system.

= outline =
 * batch jobs can create 'logrun' files for use in generating reports
   * logrun files are in json format and contain results from multiple tests
 * during execution, results are saved to the logrun file
 * a special Jenkins job can create reports (Report.make_pdf)
 * reports.sh has shell functions used to generate reports
 * reports are only created for batch jobs (it appears)
 * external tools are used to generate the log:
   * [[loggen.py]]
     * creates logrun files, and appends data to them
     * also, outputs the login in report xml format
   * [[gentexml.py]]
     * converts logrun file to report xml format
   * texml
     * converts report xml format to report .tex format
   * pdflatex
     * converts report .tex format to pdf

loggen.py and gentexml.py are Fuego programs.  texml and pdflatex
are generic programs for managing documents.

== reports generation ==
 * PDF reports can be generated from accumulated logrun results, by invoking a special Jenkins job: Reports.make_pdf
   * this job has the command sequence:
{{{#!YellowBox
source /home/jenkins/scripts/reports.sh
gen_report
}}}

See [[function_gen_report|gen_report]]


= file formats =

== logrun file format ==
There are two kinds of logrun entries: Functional and Benchmark.

A logrun file is in json format, with top level fields of:

 * device
 * testplan
 * runLogs - a list of entries of the form:
   * testName, logFile
   * testName, testResult
 * runNumber

=== logrun entries ===
Each logrun entry is a dictionary containing two fields.  For a Benchmark
the second field is the logFile.  For a Functional test, the second field is
the testResult.

 * logFile is the filename containing benchmark results (xxx.res.json file)
 * testResult is a string with the overall result for a functional test
    * the value comes from the log_compare function and is one of the following:
      * "test error"
      * "passed"
      * "failed"


== res.json file format ==
This file is produced for Benchmarks only.  It is in json format, and contains a single object with a set of pairs

Here is an example res.json for Benchmark.Dhrystone:
{{{#!YellowBox
{
    "Dhrystone": "12500000.0"
}
}}}

Here is the res.json for Benchmark.ffsb. (It's a bit more complicated than most others)
{{{#!YellowBox
{
    "Main.append_fsync.TPercent": "1.393",
    "Main.create_fsync.TPercent": "22.452",
    "Main.delete.OpWeight": "9.302",
    "Main.create_fsync.Transactions": "15477",
    "Syscall_latency.write.Min": "0.000000",
    "Syscall_latency.open.Max": "55.584999",
    "Main.open_close.Transactions": "91",
    "Main.create_fsync.OpWeight": "9.725",
    "Main.stat.TPS": "8.11",
    "Main.delete.TPercent": "0.128",
    "Main.open_close.TPS": "8.03",
    "Syscall_latency.close.Avg": "0.002518",
    "Main.delete.TPS": "7.76",
    "Main.append.TPS": "89.08",
    "Main.append.Transactions": "1010",
    "Main.writeall.OpWeight": "10.888",
    "Main.writeall.Transactions": "13750",
    "Syscall_latency.read.Avg": "0.001175",
    "Main.create.OpWeight": "10.782",
    "Syscall_latency.open.Min": "0.002000",
    "Syscall_latency.unlink.Min": "0.016000",
    "Syscall_latency.write.Avg": "0.002091",
    "Main.writeall_fsync.Transactions": "13976",
    "Main.stat.TPercent": "0.133",
    "Main.stat.OpWeight": "9.725",
    "Main.stat.Transactions": "92",
    "Main.readall.OpWeight": "9.619",
    "Syscall_latency.unlink.Max": "3.539000",
    "Main.writeall.TPS": "1212.78",
    "Main.append.TPercent": "1.465",
    "Syscall_latency.read.Max": "0.440000",
    "Main.create.TPercent": "25.646",
    "Main.create.TPS": "1559.32",
    "Main.create.Transactions": "17679",
    "Syscall_latency.read.Min": "0.000000",
    "Main.readall.Transactions": "5812",
    "Syscall_latency.write.Max": "10.133000",
    "Throughput.Read": "2000.00",
    "Syscall_latency.unlink.Avg": "0.188614",
    "Main.writeall_fsync.OpWeight": "9.514",
    "Main.open_close.OpWeight": "9.619",
    "Syscall_latency.stat.Avg": "0.005761",
    "Throughput.Write": "21700.00",
    "Syscall_latency.open.Avg": "0.172316",
    "Main.writeall_fsync.TPS": "1232.71",
    "Syscall_latency.close.Max": "0.014000",
    "Main.append.OpWeight": "10.677",
    "Syscall_latency.stat.Max": "0.019000",
    "Syscall_latency.close.Min": "0.000000",
    "Main.readall.TPercent": "8.431",
    "Main.readall.TPS": "512.63",
    "Syscall_latency.stat.Min": "0.002000",
    "Main.writeall_fsync.TPercent": "20.274",
    "Main.delete.Transactions": "88",
    "Main.writeall.TPercent": "19.946",
    "Main.create_fsync.TPS": "1365.10",
    "Main.append_fsync.OpWeight": "10.148",
    "Main.open_close.TPercent": "0.132",
    "Main.append_fsync.Transactions": "960",
    "Main.append_fsync.TPS": "84.67"
}
}}}


== SEE ALSO ==
 * [[loggen.py]], [[gentexml.py]], [[function_check_create_logrun|check_create_logrun]], [[function_check_create_functional_logrun|check_create_functional_logrun]], [[function_set_testres_file|set_testres_file]], [[function_gen_report|gen_report]]








TBWiki engine 1.9.2 by Tim Bird