Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 2.21 KB

File metadata and controls

65 lines (52 loc) · 2.21 KB

js-traffic-history

Tool to create statistics and a history of NATS JetStream message traffic from the data in the limits streams (or just for a specific stream).

Sample basic output:

Connecting to NATS...
Discovering streams with limits retention policy...
Found 1 stream(s) to analyze

Fetching messages from stream: benchstream (207108 messages)
                                                            
======================================================================
TRAFFIC HISTORY REPORT
======================================================================

Overview:
  Start Time:       2026-01-17 13:29:21.538
  End Time:         2026-01-18 00:19:07.863
  Duration:         10h49m46.3s
  Streams:          1
  Total Messages:   207108
  Total Data:       25.3 MB
  Avg Throughput:   679 B/s
  Avg Rate:         5.31 msg/s

Streams by Message Count:
  benchstream            207108 msgs    25.3 MB | ████████████████████████████████████████

----------------------------------------------------------------------
COMBINED (1 streams, 207108 total messages)
----------------------------------------------------------------------

-- Message Rate Over Time (granularity: 1.00s) ----------------------

Statistics:
  Total Messages:   207108
  Total Data:       25.3 MB
  Time Span:        10h49m47.0s
  Total Buckets:    38987 (active: 184, 0.5%)

  Message Rate:
    Average:        5.31 msg/s
    P50:            0.00 msg/s
    P90:            0.00 msg/s
    P99:            0.00 msg/s
    P99.9:          47.00 msg/s
    Min:            0.00 msg/s
    Max:            13530.00 msg/s
    Std Dev:        234.96 msg/s

  Throughput:
    Average:        679 B/s
    P50:            0 B/s
    P90:            0 B/s
    P99:            0 B/s
    P99.9:          5.9 KB/s
    Min:            0 B/s
    Max:            1.7 MB/s
    Std Dev:        29.4 KB/s

Can also create ascii time series and generate CSV files.

Note: Running this can be impactful on the NATS servers as it will try to get every single message from every single limits stream within the specified time interval (one by one and using batched direct gets to try and limit the impact).