Files
herolib_rust/rhailib/src/monitor
2025-08-21 14:32:24 +02:00
..
2025-08-21 14:32:24 +02:00
2025-08-21 14:32:24 +02:00
2025-08-21 14:32:24 +02:00
2025-08-21 14:32:24 +02:00
2025-08-21 14:32:24 +02:00

Rhai Worker Monitor (monitor)

monitor is a command-line tool designed to observe and display live information about Rhai workers managed by rhailib. It provides insights into Redis queue congestion and a table of tasks being processed by specified workers.

Features (Planned)

  • Live Redis Queue Visualization: Displays a textual, horizontal plot showing the number of tasks in the Redis queue for each monitored worker. The plot will be color-coded to indicate congestion levels and will update by polling the queue size.
  • Task Table: Shows a table of tasks associated with each worker, including task hash, creation date, status (e.g., pending, running, completed, failed), and potentially other details.

Prerequisites

  • Rust and Cargo installed.
  • Access to the Redis instance used by the Rhai workers.

Building

Navigate to the rhailib/monitor crate's root directory and build the project:

cargo build

Usage

To run the monitor, you need to specify which worker queues you want to observe using the --workers (or -w) flag. Provide a comma-separated list of worker names.

From the rhailib/monitor root directory:

cargo run -- --workers <worker_name_1>[,<worker_name_2>,...]

Or from the parent rhailib directory (workspace root):

cargo run -p monitor -- --workers <worker_name_1>[,<worker_name_2>,...]

Examples:

  • Monitor a single worker named my_default_worker (from rhailib/monitor):

    cargo run -- --workers my_default_worker
    
  • Monitor multiple workers, image_processing_worker and data_analysis_worker (from rhailib workspace root):

    cargo run -p monitor -- --workers image_processing_worker,data_analysis_worker
    

Command-Line Options

  • -w, --workers <WORKERS>: (Required) A comma-separated list of worker names to monitor.

(Future options might include Redis connection parameters, polling intervals, etc.)

Development

The core logic for the monitor is located in rhailib/monitor/src/:

  • lib.rs: Main library file, defines modules.
  • cli_logic.rs: Handles argument parsing, Redis interaction, and orchestrates the display.
  • plot.rs: Responsible for generating the textual queue visualization.
  • tasks.rs: Responsible for fetching and displaying the task table.

The binary entry point is rhailib/monitor/src/main.rs.