Comms Analyser Recipes

Demonstrates the functionality of the ORE Studio Comms Analyser Component, which reads and analyses session recording files (.ores) created by ores.qt or other clients with recording enabled.

Recipes

General

Help

Display the available commands and options.

./ores.comms.analyser --help
ores.comms.analyser - ORES session recording analyser

Usage: ores.comms.analyser [command] <session-file> [options]

Commands:
  read    Read and display session frames (default)
  info    Display session metadata only

General:
  -h [ --help ]         Display usage and exit.
  -v [ --version ]      Output version information and exit.
  --verbose             Enable verbose output.

Examples:
  ores.comms.analyser read session-20250115-143205-abc123.ores
  ores.comms.analyser info session.ores
  ores.comms.analyser session.ores --verbose

Version

Display the version information.

./ores.comms.analyser --version
Session Analyser for ORE Studio v0.0.8
Copyright (C) 2025 Marco Craveiro.
License GPLv3: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Build: Provider = LOCAL
IMPORTANT: build details are NOT for security purposes.

Reading Session Files

Display Session Metadata

Use the info command to display only the session metadata without listing all frames. This is useful for quickly checking when and where a session was recorded. You can call it against a directory:

./ores.comms.analyser info ${data_dir}/
ores.comms.analyser:
  File: "session-20260106-115622-019b932a.ores"
  Session ID: 019b932a-50d3-7e71-8e5d-bd46e092365c
  Start time: 2026-01-06 11:56:22
  Server: localhost:55555
  Protocol: v16.1
  Compression: zlib

ores.comms.analyser:
  File: "session-20260106-114916-019b9323.ores"
  Session ID: 019b9323-d06d-7403-bb4c-cd2aa5deb13b
  Start time: 2026-01-06 11:49:16
  Server: localhost:55555
  Protocol: v16.1
  Compression: zlib

Or call it against a specific file:

./ores.comms.analyser info ${data_dir}/session-20260106-114916-019b9323.ores
ores.comms.analyser:
  File: "session-20260106-114916-019b9323.ores"
  Session ID: 019b9323-d06d-7403-bb4c-cd2aa5deb13b
  Start time: 2026-01-06 11:49:16
  Server: localhost:55555
  Protocol: v16.1
  Compression: zlib

Display All Frames

Use the read command (or just provide the filename) to display all frames in the session recording. This shows a Wireshark-like table of all messages sent and received.

./ores.comms.analyser read ${data_dir}/session-20260106-114916-019b9323.ores
ores.comms.analyser:
  File: "session-20260106-114916-019b9323.ores"
  Session ID: 019b9323-d06d-7403-bb4c-cd2aa5deb13b
  Start time: 2026-01-06 11:49:16
  Server: localhost:55555
  Protocol: v16.1
  Compression: zlib

Duration: 18.291s
Frames: 12

  No.  Time           Dir   Type                             Length  Info
----------------------------------------------------------------------------------------------------
    1  0.001602       ->    get_currency_images_request          32  corr=2 seq=4
    2  0.002413       ->    subscribe_request                    68  corr=3 seq=5 zlib
    3  0.002754       ->    subscribe_request                    66  corr=4 seq=6 zlib
    4  0.014746       <-    get_currency_images_response       4350  corr=2 seq=3 zlib
    5  0.055431       <-    subscribe_response                   96  corr=3 seq=4 zlib
    6  0.055812       <-    subscribe_response                   94  corr=4 seq=5 zlib
    7  6.503335       ->    get_currencies_request               44  corr=5 seq=7 zlib
    8  6.522655       <-    get_currencies_response            2726  corr=5 seq=6 zlib
    9  9.320511       ->    get_currency_history_request         45  corr=6 seq=8 zlib
   10  9.323637       <-    get_currency_history_response       173  corr=6 seq=7 zlib
   11  18.280607      ->    logout_request                       32  corr=7 seq=9
   12  18.291296      <-    logout_response                      66  corr=7 seq=8 zlib

12 frames captured

The columns are:

  • No.: Frame number in sequence
  • Time: Offset from session start in seconds.microseconds
  • Dir: Direction (-> sent to server, <- received from server)
  • Type: Protocol message type
  • Length: Total frame size in bytes (header + payload)
  • Info: Additional information (correlation ID, sequence number, compression)

Shorthand: Filename Only

If no command is specified, read is assumed:

./ores.comms.analyser ${data_dir}/session-20260106-114916-019b9323.ores
ores.comms.analyser:
  File: "session-20260106-114916-019b9323.ores"
  Session ID: 019b9323-d06d-7403-bb4c-cd2aa5deb13b
  Start time: 2026-01-06 11:49:16
  Server: localhost:55555
  Protocol: v16.1
  Compression: zlib

Duration: 18.291s
Frames: 12

  No.  Time           Dir   Type                             Length  Info
----------------------------------------------------------------------------------------------------
    1  0.001602       ->    get_currency_images_request          32  corr=2 seq=4
    2  0.002413       ->    subscribe_request                    68  corr=3 seq=5 zlib
    3  0.002754       ->    subscribe_request                    66  corr=4 seq=6 zlib
    4  0.014746       <-    get_currency_images_response       4350  corr=2 seq=3 zlib
    5  0.055431       <-    subscribe_response                   96  corr=3 seq=4 zlib
    6  0.055812       <-    subscribe_response                   94  corr=4 seq=5 zlib
    7  6.503335       ->    get_currencies_request               44  corr=5 seq=7 zlib
    8  6.522655       <-    get_currencies_response            2726  corr=5 seq=6 zlib
    9  9.320511       ->    get_currency_history_request         45  corr=6 seq=8 zlib
   10  9.323637       <-    get_currency_history_response       173  corr=6 seq=7 zlib
   11  18.280607      ->    logout_request                       32  corr=7 seq=9
   12  18.291296      <-    logout_response                      66  corr=7 seq=8 zlib

12 frames captured

Understanding the Output

Correlation IDs

The corr field in the Info column shows the correlation ID. Requests and their corresponding responses share the same correlation ID, making it easy to match request/response pairs.

Sequence Numbers

The seq field shows the sequence number. This is an incrementing counter that helps detect missing or out-of-order frames.

Compression

If a frame uses compression, it will be shown in the Info column (e.g., lz4 or zstd). The session metadata also shows the negotiated compression type.

Previous: Recipes