Skip to content

POC: End-to-End "Local Mode" #2

@varev-dev

Description

@varev-dev

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:

  1. 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.
  2. Transport (gRPC):
    • The agent correctly serializes these 2-3 metrics (using the .proto definition) and sends them via a gRPC stream to localhost.
  3. 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).
  4. 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.

Metadata

Metadata

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

Status

In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions