47 lines
2.0 KiB
Markdown
47 lines
2.0 KiB
Markdown
# RMon: Remote Monitoring & Acquisition System
|
|
|
|
RMon is a lightweight, high-performance remote data acquisition and monitoring system. It consists of a statically-linked **Agent** that runs on remote Linux machines and a cross-platform **UI** that manages the agent lifecycle and visualizes data in real-time.
|
|
|
|
## Key Features
|
|
|
|
- **Zero-Dependency Agent**: Fully static `musl` binary. Copy and run on any Linux kernel ≥ 3.2.
|
|
- **VSCode-Style Deployment**: The UI automatically deploys and starts the agent over SSH. No manual installation required on the remote side.
|
|
- **Multi-Source Acquisition**: Support for UDP streams, CSV files, and custom Shell commands with Regex parsing.
|
|
- **Optimized Storage**: Real-time circular buffers for live display and append-only binary logs for persistent historical data.
|
|
- **Real-Time Visualization**: High-performance plotting using `egui` and `egui_plot`.
|
|
|
|
## Project Structure
|
|
|
|
- `rmon-agent/`: The remote server that collects and stores data.
|
|
- `rmon-ui/`: The desktop application for monitoring and management.
|
|
- `rmon-common/`: Shared protocol definitions and data models.
|
|
- `docs/`: Technical specifications and architectural details.
|
|
|
|
## Quick Start
|
|
|
|
### 1. Build the Agent (Static)
|
|
The agent must be built for the target architecture. For a standard x86_64 Linux target:
|
|
```bash
|
|
cargo build --release --target x86_64-unknown-linux-musl -p rmon-agent
|
|
```
|
|
|
|
### 2. Run the UI
|
|
```bash
|
|
cargo run -p rmon-ui
|
|
```
|
|
|
|
### 3. Connect
|
|
1. Enter the **SSH Host** (alias from your `~/.ssh/config`).
|
|
2. Click **Connect**. The UI will automatically:
|
|
- Check if the agent is running on the remote host.
|
|
- Deploy the binary to `~/.rmon/agent` if missing.
|
|
- Start a persistent instance.
|
|
3. Select signals from the tree to begin plotting.
|
|
|
|
## Documentation
|
|
|
|
- [User Guide](USER_GUIDE.md): How to configure and use RMon.
|
|
- [Developer Guide](DEVELOPER_GUIDE.md): Architecture, protocol, and how to add new sources.
|
|
- [Agent Specification](docs/agent-spec.md)
|
|
- [Protocol Reference](docs/protocol.md)
|