Channel already keeps some rudimentary statistics about class loading (classLoadingCount and so on), which can give insight into slow initial builds. But there are many cases where we suspect that a performance or reliability problem is ultimately due to excessive traffic on the channel, yet cannot prove this except via the crude tool of a network traffic analyzer, and have no visibility into which features (plugins) are responsible and whether the traffic is really necessary.

      Propose that we add some more statistics (counts, mean, median, standard deviation) maintained per Channel for each of the three types of Request/Response.

      • For ProxyInputStream/ProxyOutputStream, record number of pipes opened and closed in each direction, and bytes sent on them. Ideally we would like to get some information about what code opened the stream, though I am not sure how to aggregate this well, since stack traces are too variable.
      • For RPCRequest, record the implementation class name of the proxied object, perhaps the method name/signature being called, the number of calls, their duration, the byte size of the request, the byte size of the response.
      • For UserRequest, record the implementation class name of the Callable (or delegate of a FileCallableWrapper), number of calls, duration, byte sizes of request and response.

      These statistics could be reported in various places:

      • Slave system information page.
      • support-core bundles. (Of course aggregate data across channels should be recorded, so it is still available after slave disconnections.)
      • metrics data.

          [JENKINS-27035] Request/response statistics

          Jesse Glick created issue -
          Steven Christou made changes -
          Assignee New: Steven Christou [ schristou ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 161226 ] New: JNJira + In-Review [ 180618 ]
          Jesse Glick made changes -
          Assignee Original: Steven Christou [ schristou ]
          Jesse Glick made changes -
          Assignee New: Jesse Glick [ jglick ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Jesse Glick made changes -
          Remote Link New: This issue links to "remoting PR 204 (Web Link)" [ 17842 ]
          Jesse Glick made changes -
          Component/s New: core [ 15593 ]
          Jesse Glick made changes -
          Remote Link New: This issue links to "core PR 3071 (Web Link)" [ 17843 ]
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-45897 [ JENKINS-45897 ]
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-38381 [ JENKINS-38381 ]

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: