The goal of this task is to create the first working Proof of Concept (POC) for the entire system architecture in local mode.
This task aims to prove that the full E2E (end-to-end) data flow is possible and that our architecture (gRPC + WebSockets) is correct.
POC Architecture
The data flow will be as follows: [C++ Agent] -> gRPC -> [Server (Lite Mode)] -> WebSocket -> [Dashboard CLI/Web]
Acceptance Criteria
To consider this task complete, the following components must work together:
- Agent (C++):
- Must be able to collect one key CPU metric (e.g., package power from Intel RAPL or general usage from /proc/stat).
- Must be able to collect one key GPU metric (e.g., card power from NVIDIA NVML).
- Note: We are only implementing the "happy path" for a single platform (e.g., Linux + NVIDIA) to prove the API works.
- Transport (gRPC):
- The agent correctly serializes these 2-3 metrics (using the .proto definition) and sends them via a gRPC stream to localhost.
- Server (Lite Mode):
- The server is running in "lite mode" (no database connection).
- Must be able to receive and deserialize the data from the gRPC stream.
- Must be able to immediately broadcast this data to all connected WebSocket clients (e.g., in JSON format).
- Dashboard (Minimal):
- A minimal WebSocket client is created (this can be a simple CLI Dashboard in Python/Go or a 10-line HTML file with JavaScript).
- The client connects to the server via WebSocket and displays the incoming metric data "live" (e.g., by printing it to the console).
Out of Scope
This task does NOT include:
- Implementation of all metrics from
docs/METRICS.md.
- Support for all platforms (AMD, Intel GPU, Windows, etc.).
- Error handling, connection retries, or any "non-happy path" logic.
- Connecting to the database (this is for remote mode).
- Any "pretty" UI.
The goal of this task is to create the first working Proof of Concept (POC) for the entire system architecture in local mode.
This task aims to prove that the full E2E (end-to-end) data flow is possible and that our architecture (gRPC + WebSockets) is correct.
POC Architecture
The data flow will be as follows:
[C++ Agent] -> gRPC -> [Server (Lite Mode)] -> WebSocket -> [Dashboard CLI/Web]Acceptance Criteria
To consider this task complete, the following components must work together:
Out of Scope
This task does NOT include:
docs/METRICS.md.