@@ -89,7 +89,13 @@ public static void main(String[] args) {
8989
9090 //setup
9191 String id = UUID .randomUUID ().toString ();
92- Stats stats = new Stats (1000L * samplingInterval );
92+ Stats stats = new Stats (1000L * samplingInterval ,
93+ producerCount > 0 ,
94+ consumerCount > 0 ,
95+ (flags .contains ("mandatory" ) ||
96+ flags .contains ("immediate" )),
97+ confirm != -1 );
98+
9399 ConnectionFactory factory = new ConnectionFactory ();
94100 factory .setUri (uri );
95101 factory .setRequestedFrameMax (frameMax );
@@ -488,24 +494,36 @@ public void run() {
488494
489495 public static class Stats {
490496
491- private long interval ;
492-
493- private long lastStatsTime ;
494-
495- private int sendCount ;
496- private int returnCount ;
497- private int confirmCount ;
498- private int nackCount ;
499- private int recvCount ;
497+ private long interval ;
498+ private boolean sendStatsEnabled ;
499+ private boolean recvStatsEnabled ;
500+ private boolean returnStatsEnabled ;
501+ private boolean confirmStatsEnabled ;
500502
501- private int latencyCount ;
502- private long minLatency ;
503- private long maxLatency ;
504- private long cumulativeLatency ;
503+ private long startTime ;
504+ private long lastStatsTime ;
505505
506- public Stats (long interval ) {
507- this .interval = interval ;
508- reset (System .currentTimeMillis ());
506+ private int sendCount ;
507+ private int returnCount ;
508+ private int confirmCount ;
509+ private int nackCount ;
510+ private int recvCount ;
511+
512+ private int latencyCount ;
513+ private long minLatency ;
514+ private long maxLatency ;
515+ private long cumulativeLatency ;
516+
517+ public Stats (long interval ,
518+ boolean sendStatsEnabled , boolean recvStatsEnabled ,
519+ boolean returnStatsEnabled , boolean confirmStatsEnabled ) {
520+ this .interval = interval ;
521+ this .sendStatsEnabled = sendStatsEnabled ;
522+ this .recvStatsEnabled = recvStatsEnabled ;
523+ this .returnStatsEnabled = returnStatsEnabled ;
524+ this .confirmStatsEnabled = confirmStatsEnabled ;
525+ startTime = System .currentTimeMillis ();
526+ reset (startTime );
509527 }
510528
511529 private void reset (long t ) {
@@ -523,36 +541,33 @@ private void reset(long t) {
523541 cumulativeLatency = 0L ;
524542 }
525543
544+ private void showRate (String descr , long count , boolean display ,
545+ long elapsed ) {
546+ if (display ) {
547+ System .out .print (", " + descr + ": " + formatRate (1000.0 * count / elapsed ) + " msg/s" );
548+ }
549+ }
550+
526551 private void report () {
527552 long now = System .currentTimeMillis ();
528553 long elapsed = now - lastStatsTime ;
529- if (elapsed > interval ) {
530- double sendRate , returnRate , confirmRate , nackRate ;
531- sendRate = sendCount * 1000.0 / elapsed ;
532- returnRate = returnCount * 1000.0 / elapsed ;
533- confirmRate = confirmCount * 1000.0 / elapsed ;
534- nackRate = nackCount * 1000.0 / elapsed ;
535-
536- System .out .print ("sending rate: " + formatRate (sendRate ) + " msg/s" );
537- if (returnRate > 0 ) {
538- System .out .print (", returns: " + formatRate (returnRate ) + " ret/s" );
539- }
540- if (confirmRate > 0 ) {
541- System .out .print (", confirms: " + formatRate (confirmRate ) + " c/s" );
542- }
543- if (nackRate > 0 ) {
544- System .out .print (", nacks: " + formatRate (nackRate ) + " n/s" );
545- }
546554
547- System .out .print (", recving rate: " +
548- formatRate (1000.0 * recvCount / elapsed ) +
549- " msg/s" +
550- (latencyCount > 0 ?
555+ if (elapsed >= interval ) {
556+ System .out .print ("time: " + String .format ("%.3f" , (now - startTime )/1000.0 ) + "s" );
557+
558+ showRate ("sent" , sendCount , sendStatsEnabled , elapsed );
559+ showRate ("returned" , returnCount , sendStatsEnabled && returnStatsEnabled , elapsed );
560+ showRate ("confirmed" , confirmCount , sendStatsEnabled && confirmStatsEnabled , elapsed );
561+ showRate ("nacked" , nackCount , sendStatsEnabled && confirmStatsEnabled , elapsed );
562+ showRate ("received" , recvCount , recvStatsEnabled , elapsed );
563+
564+ System .out .print ((latencyCount > 0 ?
551565 ", min/avg/max latency: " +
552566 minLatency /1000L + "/" +
553567 cumulativeLatency / (1000L * latencyCount ) + "/" +
554568 maxLatency /1000L + " microseconds" :
555569 "" ));
570+
556571 System .out .println ();
557572 reset (now );
558573 }
0 commit comments