network-quality / goresponsiveness

A draft-ietf-ippm-responsiveness client in Go.
GNU General Public License v2.0
133 stars 10 forks source link

[Feature] Add detailed final RPM output #67

Open hawkinsw opened 10 months ago

hawkinsw commented 10 months ago

Calculate and display additional RPM information when the user requests with the --detailed CLI flag.

moeller0 commented 10 months ago

I wonder whether this is not also a good opportunity to report the corresponding durations for the different RPM values? And maybe put the RPM statistics measure at the front, like:

Final detailed RPM ([PNN|ssTRN%]); full: NNN (MMM ms); self: NNN (MMM ms); foreign: NNN (MMM ms)

That would give a concise yet pretty complete detailed report? Moving the stats measure to the front would help in visually finding corresponding lines quicker (at least for me). The same format could then also be used for the Upload and Download RPM reports if --detailed was requested?

hawkinsw commented 9 months ago

From the Slack channel, there is some additional description from @moeller0 that I will take into account:

Maybe add the respective time unit?

Trimmed Mean Self RTT [sec]:        0.208896

or

Trimmed Mean Self RTT [ms]:        208.896

And, for --detailed we might be able to do something like:

Final RPM(P90): 14 (4285.71 ms); self: 8 (7500.00 ms); foreign: 69 (869.56 ms)
Final RPM(sTR5): 323 (18.58 ms); self: 287 (20.91 ms); foreign: 369 (16.26 ms)

Note the delay numbers are likely wrong... just take this as example... That is, move the type identifier to the "label", and all all three RPMs in one line and also report the corresponding durations.

hawkinsw commented 9 months ago

@moeller0 Sorry for the late response. I have added additional detailed output -- what you suggested makes the output that much more complete! I am not sure that I matched your suggested formatting. Please let me know what changes you think would be helpful.

One big piece that I did add: The detailed RPM calculation information in the directions. I have no idea why I did not add that before. It's there now and I think that makes the output that much better.

Thank you for the suggestion!

hawkinsw commented 9 months ago

@moeller0 I have updated this branch to produce a slightly more verbose output for trimmed measurements:

    RPM Calculation stats:
        Total Self Probes:            476
        Total Foreign Probes:         1428
        Trimmed Self Probes Count:    23 of 476
        Trimmed Foreign Probes Count: 71 of 1428
        P90 Self RTT:                 0.096804s
        P90 Foreign RTT:              0.033561s
        P90 RTT:                      0.065182s
        Trimmed Mean Self RTT:        0.073682s
        Trimmed Mean Foreign RTT:     0.029493s
        Trimmed Mean RTT:             0.051588s
    RPM: 920 (P90)

Let me know if that looks okay to you!