Qpid
  1. Qpid
  2. QPID-3977

Add charting framework for new distributed tests framwork

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.17
    • Component/s: Java Tests
    • Labels:
      None

      Description

      We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.

      As the licences of the dependencies of this module are not Apache 2.0 compatible, the new module perftests/visualisation-jfc is optional and is not part of the standard Java build nor does it form part of the distributables. If the user wishes to use this module, they must download the JARs themselves. This is the same approach as used by the bdbstore.

      The following build command will download the optional components and perform the build:

      ant build test -Ddownload-csvjdbc=true -Ddownload-jfree=true -Dmodules.opt=perftests/visualisation-jfc
      

        Issue Links

          Activity

          Keith Wall created issue -
          Keith Wall made changes -
          Field Original Value New Value
          Link This issue is a clone of QPID-3936 [ QPID-3936 ]
          Keith Wall made changes -
          Assignee Philip Harvey [ philharveyonline ] Keith Wall [ k-wall ]
          Description We would like a framework that makes it easy to run configuration-driven distributed Qpid tests.

          The framework should read a configuration file that specifies a number of queues, producers, and consumers. It should then run the test, collecting statistics along the way.

          This is being initially implemented in Java, but is ultimately intended to be language-neutral.
          We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.
          Keith Wall made changes -
          Link This issue relates to QPID-3936 [ QPID-3936 ]
          Keith Wall made changes -
          Link This issue is a clone of QPID-3936 [ QPID-3936 ]
          Keith Wall made changes -
          Description We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.
          We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.

          As the licences of the dependencies of this module are not Apache 2.0 compatible, the new module perftests/visualisation-jfc is optional and is not part of the standard build or distributables. If the user wishes to use this module, they must download the JARs themselves. This is the same approach as used by the bdbstore.


          Keith Wall made changes -
          Description We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.

          As the licences of the dependencies of this module are not Apache 2.0 compatible, the new module perftests/visualisation-jfc is optional and is not part of the standard build or distributables. If the user wishes to use this module, they must download the JARs themselves. This is the same approach as used by the bdbstore.


          We need a flexible charting mechanism to allow the performance figures produced by the new distributed test tool (QPID-3936) to be readily understood. This new Java module uses JFreeChart to produce charts from the CSV files produced by the tool.

          As the licences of the dependencies of this module are not Apache 2.0 compatible, the new module perftests/visualisation-jfc is optional and is not part of the standard Java build nor does it form part of the distributables. If the user wishes to use this module, they must download the JARs themselves. This is the same approach as used by the bdbstore.

          The following build command will download the optional components and perform the build:

          {code}
          ant build test -Ddownload-csvjdbc=true -Ddownload-jfree=true -Dmodules.opt=perftests/visualisation-jfc
          {code}


          Keith Wall made changes -
          Assignee Keith Wall [ k-wall ] Philip Harvey [ philharveyonline ]
          Keith Wall made changes -
          Assignee Philip Harvey [ philharveyonline ] Keith Wall [ k-wall ]
          Keith Wall made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Keith Wall made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          Keith Wall made changes -
          Assignee Keith Wall [ k-wall ] Philip Harvey [ philharveyonline ]
          Hide
          Philip Harvey added a comment -

          Code reviewed and all looks fine.

          • I didn't find running ChartUtil very intuitive. It seems that the command line needs to be something like:

          java -cp ".:$

          {QPID_HOME}

          /lib/*" -DcsvCurrentDir=/location/of/csv/files org.apache.qpid.disttest.charting.ChartingUtil chart-defs=/location/of/chartdefs/

          Is there a reason why the csv directory is specified with a system property rather than a command line argument?

          • I do think it would be worth modifying ChartUtils to print usage if it's run with no/invalid args.
          • On a related point, I don't think command line option "outputdir" is used anywhere.
          Show
          Philip Harvey added a comment - Code reviewed and all looks fine. I didn't find running ChartUtil very intuitive. It seems that the command line needs to be something like: java -cp ".:$ {QPID_HOME} /lib/*" -DcsvCurrentDir=/location/of/csv/files org.apache.qpid.disttest.charting.ChartingUtil chart-defs=/location/of/chartdefs/ Is there a reason why the csv directory is specified with a system property rather than a command line argument? I do think it would be worth modifying ChartUtils to print usage if it's run with no/invalid args. On a related point, I don't think command line option "outputdir" is used anywhere.
          Hide
          Philip Harvey added a comment -

          I've added code review comments for you to consider.

          Show
          Philip Harvey added a comment - I've added code review comments for you to consider.
          Philip Harvey made changes -
          Assignee Philip Harvey [ philharveyonline ] Keith Wall [ k-wall ]
          Hide
          Keith Wall added a comment - - edited

          Add support for 3D bar/line charts; XY line charts, chart subtitles, and add Main-Class/Class-Path manifest entries to visualisation JAR to allow for easy use from command line.

          Patch uploaded for safe keeping.

          Show
          Keith Wall added a comment - - edited Add support for 3D bar/line charts; XY line charts, chart subtitles, and add Main-Class/Class-Path manifest entries to visualisation JAR to allow for easy use from command line. Patch uploaded for safe keeping.
          Keith Wall made changes -
          Attachment 0001-QPID-3977-Add-support-for-3D-bar-line-charts-XY-line.patch [ 12531166 ]
          Hide
          Philip Harvey added a comment -

          ChartingUtil now generates chart-summary.html file to facilitate chart png browsing from CI server.

          This patch is intended to be applied on top of the one that Keith already attached to this JIRA.

          Show
          Philip Harvey added a comment - ChartingUtil now generates chart-summary.html file to facilitate chart png browsing from CI server. This patch is intended to be applied on top of the one that Keith already attached to this JIRA.
          Philip Harvey made changes -
          Keith Wall made changes -
          Attachment 0001-QPID-3977-Add-support-for-3D-bar-line-charts-XY-line.patch [ 12531166 ]
          Hide
          Keith Wall added a comment -

          Hi Phil, I reviewed you patch and had no comments.

          Show
          Keith Wall added a comment - Hi Phil, I reviewed you patch and had no comments.
          Hide
          Keith Wall added a comment -

          Patches applied.

          Show
          Keith Wall added a comment - Patches applied.
          Hide
          Keith Wall added a comment -

          Phil's original review comments still stand. Setting to rejected until this work is done.

          Show
          Keith Wall added a comment - Phil's original review comments still stand. Setting to rejected until this work is done.
          Keith Wall made changes -
          Status Ready To Review [ 10006 ] Open [ 1 ]
          Hide
          Philip Harvey added a comment -

          attached patch to tidy up some aspects of chart generation

          Show
          Philip Harvey added a comment - attached patch to tidy up some aspects of chart generation
          Philip Harvey made changes -
          Hide
          Philip Harvey added a comment -

          attached patch to fix problems in previous one

          Show
          Philip Harvey added a comment - attached patch to fix problems in previous one
          Philip Harvey made changes -
          Hide
          Keith Wall added a comment -

          Patches applied.

          Show
          Keith Wall added a comment - Patches applied.
          Hide
          Philip Harvey added a comment -

          attached patch to include baseline data in charts

          Show
          Philip Harvey added a comment - attached patch to include baseline data in charts
          Philip Harvey made changes -
          Hide
          Robbie Gemmell added a comment -

          Resolving, new changes = new JIRA.

          Show
          Robbie Gemmell added a comment - Resolving, new changes = new JIRA.
          Robbie Gemmell made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]

            People

            • Assignee:
              Keith Wall
              Reporter:
              Keith Wall
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development