Initial working implementation (MVP)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user