Report: Change versioning and legend of graphs 67/15967/1
authorTibor Frank <tifrank@cisco.com>
Thu, 15 Nov 2018 12:35:12 +0000 (13:35 +0100)
committerTibor Frank <tifrank@cisco.com>
Thu, 15 Nov 2018 12:39:09 +0000 (13:39 +0100)
Change-Id: I6381c916582509c45f12d4e6d1d63ffeffc1eaf5
Signed-off-by: Tibor Frank <tifrank@cisco.com>
docs/report/introduction/report_history.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst
resources/tools/presentation/conf.py
resources/tools/presentation/generator_CPTA.py
resources/tools/presentation/generator_plots.py
resources/tools/presentation/generator_report.py
resources/tools/presentation/run_report.sh

index afe0fd6..a38ac74 100644 (file)
@@ -1,18 +1,25 @@
-Report History
-==============
+FD.io CSIT-18.10 Test Report History
+====================================
 
 +---------+--------------------------------------------------------------------+
 | Version | Change                                                             |
 +=========+====================================================================+
 
 +---------+--------------------------------------------------------------------+
 | Version | Change                                                             |
 +=========+====================================================================+
-| 1.2     | - Add automatic wrapping of long test names in graphs              |
+| .w47    | 1. Automatic wrapping of long test names in graphs added.          |
+|         | 2. Data and time format in the header changed                      |
+|         | 3. Versioning changed.                                             |
+|         |                                                                    |
 +---------+--------------------------------------------------------------------+
 +---------+--------------------------------------------------------------------+
-| 1.1     | - Add dot1q KVM VMs vhost-user tests to the VPP performance        |
-|         |   graphs.                                                          |
-|         | - Add the information about the number of runs used to generate    |
-|         |   the plots.                                                       |
-|         | - Add the test results:                                            |
-|         |   - K8s Container Memif,                                           |
-|         |   - VPP on 3n-hsw testbed.                                         |
+| .w46    | 1. dot1q KVM VMs vhost-user tests added to                         |
+|         |    :ref:`KVM_VMs_vhost`.                                           |
+|         |                                                                    |
+|         | 2. Added number of test runs used to generate data for all graphs  |
+|         |    (throughput, speedup multi-core and latency).                   |
+|         |                                                                    |
+|         | 3. Added more test runs:                                           |
+|         |                                                                    |
+|         |    a. K8s Container Memif,                                         |
+|         |    b. VPP on 3n-hsw testbed.                                       |
+|         |                                                                    |
++---------+--------------------------------------------------------------------+
+| .w45    | Initial version                                                    |
 +---------+--------------------------------------------------------------------+
 +---------+--------------------------------------------------------------------+
-| 1.0     | Initial version                                                    |
-+---------+--------------------------------------------------------------------+
\ No newline at end of file
index c795e4b..83b4731 100644 (file)
@@ -28,6 +28,8 @@
 
     </script>
 
 
     </script>
 
+.. _KVM_VMs_vhost:
+
 KVM VMs vhost-user
 ==================
 
 KVM VMs vhost-user
 ==================
 
index 6f25191..85395ab 100644 (file)
@@ -45,7 +45,7 @@ source_suffix = ['.rst', '.md']
 master_doc = 'index'
 
 # General information about the project.
 master_doc = 'index'
 
 # General information about the project.
-project = u'FD.io CSIT-18.10.W47'
+project = u'FD.io CSIT-18.10.w47'
 copyright = u'2018, FD.io'
 author = u'FD.io CSIT'
 
 copyright = u'2018, FD.io'
 author = u'FD.io CSIT'
 
@@ -105,7 +105,7 @@ rst_epilog = """
 .. _CSIT Testbed Setup: https://git.fd.io/csit/tree/resources/tools/testbed-setup/README.md?h={release}
 .. _K8s configuration files: https://github.com/FDio/csit/tree/{release}/resources/templates/kubernetes
 """.format(release='rls1810',
 .. _CSIT Testbed Setup: https://git.fd.io/csit/tree/resources/tools/testbed-setup/README.md?h={release}
 .. _K8s configuration files: https://github.com/FDio/csit/tree/{release}/resources/templates/kubernetes
 """.format(release='rls1810',
-           report_version='v1.2',
+           report_version='w47',
            prev_release='rls1807',
            srelease='1810',
            csitrelease='18.10',
            prev_release='rls1807',
            srelease='1810',
            csitrelease='18.10',
index 28b64d5..f230a64 100644 (file)
@@ -124,7 +124,7 @@ def generate_cpta(spec, data):
     ret_code = _generate_all_charts(spec, data)
 
     cmd = HTML_BUILDER.format(
     ret_code = _generate_all_charts(spec, data)
 
     cmd = HTML_BUILDER.format(
-        date=datetime.utcnow().strftime('%Y-%m-%dT%H:%MZ'),
+        date=datetime.utcnow().strftime('%Y-%m-%d %H:%M UTC'),
         working_dir=spec.environment["paths"]["DIR[WORKING,SRC]"],
         build_dir=spec.environment["paths"]["DIR[BUILD,HTML]"])
     execute_command(cmd)
         working_dir=spec.environment["paths"]["DIR[WORKING,SRC]"],
         build_dir=spec.environment["paths"]["DIR[BUILD,HTML]"])
     execute_command(cmd)
index 03cee06..2ba2dc0 100644 (file)
@@ -144,21 +144,22 @@ def plot_performance_box(plot, input_data):
     df.head()
     y_max = list()
     for i, col in enumerate(df.columns):
     df.head()
     y_max = list()
     for i, col in enumerate(df.columns):
-        name = "{0}. {1}".format(i + 1, col.lower().replace('-ndrpdr', ''))
-        if len(name) > 60:
+        name = "{nr}. ({samples:02d} run{plural}) {name}".\
+            format(nr=(i + 1),
+                   samples=nr_of_samples[i],
+                   plural='s' if nr_of_samples[i] > 1 else '',
+                   name=col.lower().replace('-ndrpdr', ''))
+        if len(name) > 50:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
-                if (len(name) + len(segment) + 1) > 60 and split_name:
+                if (len(name) + len(segment) + 1) > 50 and split_name:
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
             name = name[:-1]
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
             name = name[:-1]
-        name = "{name} ({samples} run{plural})".\
-            format(name=name,
-                   samples=nr_of_samples[i],
-                   plural='s' if nr_of_samples[i] > 1 else '')
+
         logging.debug(name)
         traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
                                y=[y / 1000000 if y else None for y in df[col]],
         logging.debug(name)
         traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
                                y=[y / 1000000 if y else None for y in df[col]],
@@ -298,12 +299,12 @@ def plot_latency_error_bars(plot, input_data):
     nr_of_samples = list()
     for key, val in y_sorted.items():
         name = "-".join(key.split("-")[1:-1])
     nr_of_samples = list()
     for key, val in y_sorted.items():
         name = "-".join(key.split("-")[1:-1])
-        if len(name) > 60:
+        if len(name) > 50:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
-                if (len(name) + len(segment) + 1) > 60 and split_name:
+                if (len(name) + len(segment) + 1) > 50 and split_name:
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
@@ -332,11 +333,11 @@ def plot_latency_error_bars(plot, input_data):
             direction = "West-East"
         else:
             direction = "East-West"
             direction = "West-East"
         else:
             direction = "East-West"
-        hovertext = ("Test: {test}<br>"
-                     "Direction: {dir}<br>"
-                     "No. of Runs: {nr}<br>".format(test=x_vals[idx],
-                                                    dir=direction,
-                                                    nr=nr_of_samples[idx]))
+        hovertext = ("No. of Runs: {nr}<br>"
+                     "Test: {test}<br>"
+                     "Direction: {dir}<br>".format(test=x_vals[idx],
+                                                   dir=direction,
+                                                   nr=nr_of_samples[idx]))
         if isinstance(y_maxs[idx], float):
             hovertext += "Max: {max:.2f}uSec<br>".format(max=y_maxs[idx])
         if isinstance(y_vals[idx], float):
         if isinstance(y_maxs[idx], float):
             hovertext += "Max: {max:.2f}uSec<br>".format(max=y_maxs[idx])
         if isinstance(y_vals[idx], float):
@@ -487,12 +488,12 @@ def plot_throughput_speedup_analysis(plot, input_data):
         try:
             if test_vals["1"][1]:
                 name = "-".join(test_name.split('-')[1:-1])
         try:
             if test_vals["1"][1]:
                 name = "-".join(test_name.split('-')[1:-1])
-                if len(name) > 60:
+                if len(name) > 50:
                     name_lst = name.split('-')
                     name = ""
                     split_name = True
                     for segment in name_lst:
                     name_lst = name.split('-')
                     name = ""
                     split_name = True
                     for segment in name_lst:
-                        if (len(name) + len(segment) + 1) > 60 and split_name:
+                        if (len(name) + len(segment) + 1) > 50 and split_name:
                             name += "<br>    "
                             split_name = False
                         name += segment + '-'
                             name += "<br>    "
                             split_name = False
                         name += segment + '-'
@@ -694,9 +695,9 @@ def plot_throughput_speedup_analysis(plot, input_data):
             for idx in range(len(val["val"])):
                 htext = ""
                 if isinstance(val["val"][idx], float):
             for idx in range(len(val["val"])):
                 htext = ""
                 if isinstance(val["val"][idx], float):
-                    htext += "Mean: {0:.2f}Mpps<br>" \
-                             "No. of Runs: {1}<br>".format(val["val"][idx],
-                                                        val["count"][idx])
+                    htext += "No. of Runs: {1}<br>" \
+                             "Mean: {0:.2f}Mpps<br>".format(val["val"][idx],
+                                                            val["count"][idx])
                 if isinstance(val["diff"][idx], float):
                     htext += "Diff: {0:.0f}%<br>".format(round(val["diff"][idx]))
                 if isinstance(val["rel"][idx], float):
                 if isinstance(val["diff"][idx], float):
                     htext += "Diff: {0:.0f}%<br>".format(round(val["diff"][idx]))
                 if isinstance(val["rel"][idx], float):
@@ -804,21 +805,21 @@ def plot_http_server_performance_box(plot, input_data):
     df = pd.DataFrame(y_vals)
     df.head()
     for i, col in enumerate(df.columns):
     df = pd.DataFrame(y_vals)
     df.head()
     for i, col in enumerate(df.columns):
-        name = "{0}. {1}".format(i + 1, col.lower().replace('-ndrpdr', ''))
-        if len(name) > 60:
+        name = "{nr}. ({samples:02d} run{plural}) {name}".\
+            format(nr=(i + 1),
+                   samples=nr_of_samples[i],
+                   plural='s' if nr_of_samples[i] > 1 else '',
+                   name=col.lower().replace('-ndrpdr', ''))
+        if len(name) > 50:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
             name_lst = name.split('-')
             name = ""
             split_name = True
             for segment in name_lst:
-                if (len(name) + len(segment) + 1) > 60 and split_name:
+                if (len(name) + len(segment) + 1) > 50 and split_name:
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
             name = name[:-1]
                     name += "<br>    "
                     split_name = False
                 name += segment + '-'
             name = name[:-1]
-        name = "{name} ({samples} run{plural})".\
-            format(name=name,
-                   samples=nr_of_samples[i],
-                   plural='s' if nr_of_samples[i] > 1 else '')
 
         traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
                                y=df[col],
 
         traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
                                y=df[col],
index 0fff90a..6b28a92 100644 (file)
@@ -91,7 +91,7 @@ HTML_BUILDER = 'sphinx-build -v -c . -a ' \
                '-b html -E ' \
                '-t html ' \
                '-D release={release} ' \
                '-b html -E ' \
                '-t html ' \
                '-D release={release} ' \
-               '-D version="Report v{report_version} - {date}" ' \
+               '-D version="Test Report {date}" ' \
                '{working_dir} ' \
                '{build_dir}/'
 
                '{working_dir} ' \
                '{build_dir}/'
 
@@ -100,7 +100,7 @@ PDF_BUILDER = 'sphinx-build -v -c . -a ' \
               '-b latex -E ' \
               '-t latex ' \
               '-D release={release} ' \
               '-b latex -E ' \
               '-t latex ' \
               '-D release={release} ' \
-              '-D version="Report v{report_version} - {date}" ' \
+              '-D version="Test Report {date}" ' \
               '{working_dir} ' \
               '{build_dir}'
 
               '{working_dir} ' \
               '{build_dir}'
 
@@ -157,7 +157,7 @@ def generate_html_report(release, spec, versions, report_version):
     cmd = HTML_BUILDER.format(
         release=release,
         report_version=report_version,
     cmd = HTML_BUILDER.format(
         release=release,
         report_version=report_version,
-        date=datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%MZ'),
+        date=datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M UTC'),
         working_dir=working_dir,
         build_dir=spec.environment["paths"]["DIR[BUILD,HTML]"])
     execute_command(cmd)
         working_dir=working_dir,
         build_dir=spec.environment["paths"]["DIR[BUILD,HTML]"])
     execute_command(cmd)
@@ -212,7 +212,7 @@ def generate_pdf_report(release, spec, versions, report_version):
     cmd = PDF_BUILDER.format(
         release=release,
         report_version=report_version,
     cmd = PDF_BUILDER.format(
         release=release,
         report_version=report_version,
-        date=datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%MZ'),
+        date=datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M UTC'),
         working_dir=working_dir,
         build_dir=build_dir)
     execute_command(cmd)
         working_dir=working_dir,
         build_dir=build_dir)
     execute_command(cmd)
index 6d77081..0438248 100755 (executable)
@@ -38,7 +38,7 @@ export PYTHONPATH=`pwd`
 python pal.py \
     --specification specification.yaml \
     --release ${RELEASE} \
 python pal.py \
     --specification specification.yaml \
     --release ${RELEASE} \
-    --version "1.2" \
+    --version "w47" \
     --logging INFO \
     --force
 
     --logging INFO \
     --force