Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-26988

Responding time graphs should not ignore samples with errors

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • performance-plugin
    • None

      When even one sample from a set of samples contained an error, the responding time graph displays zero milliseconds for the entire build. This is undesirable, as:

      • even error-generation takes time (and should be plotted);
      • it masks the response times for the requests that did not result in an error (which is annoying if there are many, many samples of which just a low percentage resulted in errors.

      On the dashboard, the "Responding Time" and "Percentage of Errors" graphs are situated next to each-other. This allows the user to evaluate easily if there were errors for the provided response times. This further removes the need to 'hide' samples that contain errors (as it's pretty clear that there were errors, if any).

      To illustrate, see the graph below. About half way through the build history, we implemented an improvement that:

      1. fixed the low percentage of errors that we had;
      2. improved response time considerably.

      The first glance on the graphs however make it look like things got worse (as there are suddenly a number of lines that are not 'zero' any more.

      The graph below is based on the same data, but does not 'hide' errors.

      As you can see, the graph allows users to analyze the actual results a lot better.

      I propose to stop 'hiding' the errors, as that results in non-truthful graphs.

      The fix for this issue is almost trivial. In class PerformanceProjectAction, the following if-statement needs to be replaced:

      if (uriReport.isFailed()) {
        // we set duration as 0 for failed tests
        dataSetBuilderAverage.add(0, uriReport.getUri(), label);
      } else {
        dataSetBuilderAverage.add(uriReport.getAverage(), uriReport.getUri(), label);
      }

        1. after.png
          after.png
          70 kB
        2. before.png
          before.png
          60 kB

          [JENKINS-26988] Responding time graphs should not ignore samples with errors

          A fix for this issue is presented in pull request #45: https://github.com/jenkinsci/performance-plugin/pull/45

          Guus der Kinderen added a comment - A fix for this issue is presented in pull request #45: https://github.com/jenkinsci/performance-plugin/pull/45

          Code changed in jenkins
          User: Guus der Kinderen
          Path:
          src/main/java/hudson/plugins/performance/PerformanceProjectAction.java
          http://jenkins-ci.org/commit/performance-plugin/d249f7c02a8d5e2103788d6217d2e1b9e8540a37
          Log:
          [FIXED JENKINS-26988] Graphs should include errors.

          Generated graphs currently ignore sample-sets that contain even one
          error. This gives a skewed view of the data, and should not occur.
          Please refer to https://issues.jenkins-ci.org/browse/JENKINS-26988 for
          details.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Guus der Kinderen Path: src/main/java/hudson/plugins/performance/PerformanceProjectAction.java http://jenkins-ci.org/commit/performance-plugin/d249f7c02a8d5e2103788d6217d2e1b9e8540a37 Log: [FIXED JENKINS-26988] Graphs should include errors. Generated graphs currently ignore sample-sets that contain even one error. This gives a skewed view of the data, and should not occur. Please refer to https://issues.jenkins-ci.org/browse/JENKINS-26988 for details.

          Code changed in jenkins
          User: Guus der Kinderen
          Path:
          src/main/java/hudson/plugins/performance/AbstractParser.java
          src/main/java/hudson/plugins/performance/IagoParser.java
          src/main/java/hudson/plugins/performance/JMeterCsvParser.java
          src/main/java/hudson/plugins/performance/JMeterParser.java
          src/main/java/hudson/plugins/performance/JUnitParser.java
          src/main/java/hudson/plugins/performance/JmeterSummarizerParser.java
          src/main/java/hudson/plugins/performance/WrkSummarizerParser.java
          src/test/java/hudson/plugins/performance/JMeterParserTest.java
          src/test/resources/JENKINS-16627_CSV_instead_of_XML.jtl
          src/test/resources/emptyfile.jtl
          src/test/resources/whitespace-followed-by-xml.jtl
          http://jenkins-ci.org/commit/performance-plugin/7e1559fc45ed4bea5cadbfd9eae7aaa5b30e0f5a
          Log:
          [FIXED JENKINS-26988]

          At some point in the release history, JMeter switched from XML to CSV as
          a default for data persistency. The performance plugin should determine
          if a JTL file is either XML or CSV, and parse the data accordingly. See
          https://issues.jenkins-ci.org/browse/JENKINS-16627 for more details.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Guus der Kinderen Path: src/main/java/hudson/plugins/performance/AbstractParser.java src/main/java/hudson/plugins/performance/IagoParser.java src/main/java/hudson/plugins/performance/JMeterCsvParser.java src/main/java/hudson/plugins/performance/JMeterParser.java src/main/java/hudson/plugins/performance/JUnitParser.java src/main/java/hudson/plugins/performance/JmeterSummarizerParser.java src/main/java/hudson/plugins/performance/WrkSummarizerParser.java src/test/java/hudson/plugins/performance/JMeterParserTest.java src/test/resources/ JENKINS-16627 _CSV_instead_of_XML.jtl src/test/resources/emptyfile.jtl src/test/resources/whitespace-followed-by-xml.jtl http://jenkins-ci.org/commit/performance-plugin/7e1559fc45ed4bea5cadbfd9eae7aaa5b30e0f5a Log: [FIXED JENKINS-26988] At some point in the release history, JMeter switched from XML to CSV as a default for data persistency. The performance plugin should determine if a JTL file is either XML or CSV, and parse the data accordingly. See https://issues.jenkins-ci.org/browse/JENKINS-16627 for more details.

          Code changed in jenkins
          User: Manuel Carrasco Moñino
          Path:
          .gitignore
          src/main/java/hudson/plugins/performance/AbstractParser.java
          src/main/java/hudson/plugins/performance/AbstractReport.java
          src/main/java/hudson/plugins/performance/IagoParser.java
          src/main/java/hudson/plugins/performance/JMeterCsvParser.java
          src/main/java/hudson/plugins/performance/JMeterParser.java
          src/main/java/hudson/plugins/performance/JUnitParser.java
          src/main/java/hudson/plugins/performance/JmeterSummarizerParser.java
          src/main/java/hudson/plugins/performance/PerformanceProjectAction.java
          src/main/java/hudson/plugins/performance/PerformanceReport.java
          src/main/java/hudson/plugins/performance/WrkSummarizerParser.java
          src/test/java/hudson/plugins/performance/JMeterParserTest.java
          src/test/java/hudson/plugins/performance/JUnitParserTest.java
          src/test/java/hudson/plugins/performance/WrkSummarizerParserTest.java
          src/test/resources/JENKINS-16627_CSV_instead_of_XML.jtl
          src/test/resources/TEST-JUnitResults.xml.serialized
          src/test/resources/emptyfile.jtl
          src/test/resources/jUnitIssue5571.xml.serialized
          src/test/resources/whitespace-followed-by-xml.jtl
          http://jenkins-ci.org/commit/performance-plugin/d5d4c8797a0c13a051d010b380a3d6346c1db3d2
          Log:
          Merge pull request #45 from guusdk/master

          [FIXED JENKINS-26988] [FIXED JENKINS-16627][FIXED JENKINS-15736]

          Compare: https://github.com/jenkinsci/performance-plugin/compare/3e0f37953c07...d5d4c8797a0c

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Manuel Carrasco Moñino Path: .gitignore src/main/java/hudson/plugins/performance/AbstractParser.java src/main/java/hudson/plugins/performance/AbstractReport.java src/main/java/hudson/plugins/performance/IagoParser.java src/main/java/hudson/plugins/performance/JMeterCsvParser.java src/main/java/hudson/plugins/performance/JMeterParser.java src/main/java/hudson/plugins/performance/JUnitParser.java src/main/java/hudson/plugins/performance/JmeterSummarizerParser.java src/main/java/hudson/plugins/performance/PerformanceProjectAction.java src/main/java/hudson/plugins/performance/PerformanceReport.java src/main/java/hudson/plugins/performance/WrkSummarizerParser.java src/test/java/hudson/plugins/performance/JMeterParserTest.java src/test/java/hudson/plugins/performance/JUnitParserTest.java src/test/java/hudson/plugins/performance/WrkSummarizerParserTest.java src/test/resources/ JENKINS-16627 _CSV_instead_of_XML.jtl src/test/resources/TEST-JUnitResults.xml.serialized src/test/resources/emptyfile.jtl src/test/resources/jUnitIssue5571.xml.serialized src/test/resources/whitespace-followed-by-xml.jtl http://jenkins-ci.org/commit/performance-plugin/d5d4c8797a0c13a051d010b380a3d6346c1db3d2 Log: Merge pull request #45 from guusdk/master [FIXED JENKINS-26988] [FIXED JENKINS-16627] [FIXED JENKINS-15736] Compare: https://github.com/jenkinsci/performance-plugin/compare/3e0f37953c07...d5d4c8797a0c

            manolo Manuel Carrasco
            guusdk Guus der Kinderen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: