RoboMetrics
RoboMetrics is a Python library for measuring system resources. Specially focused on CPU, Memory and GPU usage. It is designed to be used in a wide range of applications, from monitoring system resources to testing and benchmarking.
Goals of RoboMetrics:
- Provide a simple way to measure resources without losing data in the process.
- Be able to measure resources in real-time.
- Interconnect workers in a network.
Installation
To install the client install it via pip:
pip install roborregos-metrics-client
To install the server:
pip install roborregos-metrics-server
Architecture
RoboMetrics is designed to be modular, extensible and distributed. It is composed of four main components:
- Process: This represent your normal Python/C++ process/application. Inn order to measure its resources, you only need to import the
robometrics.lib.registermodule and callregister.
from robometrics.lib.register import Register
Register.async_auto_register() # Recomended for non-blocking calls
Register.auto_unregister()
- Workers: The worker is a module made to run in the background in a host machine. The worker is responsible for collecting data from the registered processes and sending it to the intake server (or in its defect, save the data locally).
To start a worker, you only need to run the entry point robometrics.worker.worker.
robometrics-worker
- Intake Server: The intake server is a server that receives data from the workers and stores it in a database. The server is responsible for managing the data and providing an API to access it.
The current implementation relies on a mongo database, but can be worked towards a more general solution. There is a docker-compose file that can be used to start the db.
To start the server, you only need to run the entry point robometrics.server.server.
robometrics-server
- RoboMetrics-Viz: The visualization module is a web application that connects to the intake server and displays the data in a user-friendly way. The web application is built using Next.js and Vega-Lite.
Refer to the viz repo: RoboMetrics-Viz
Recomendations
The modules are pretend to used in a robotics enviroment or a distributed system. This way each host sould be responsible to run a worker and a process. The intake server can be run in a central server or in a server that is always on. (Other alternative is to run the worker and process without a central server and run robometrics-sync to sync the data to a central server)
Metadata
Release files for roborregos-metrics-client 1.2.2024.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| roborregos-metrics-client-1.2.2024.3.tar.gz | 9.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| roborregos_metrics_client-1.2.2024.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.8 kB
Release files / roborregos-metrics-client-1.2.2024.3.tar.gz
| Download URL | roborregos-metrics-client-1.2.2024.3.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e2387f82444b1d2ddcc26366c9d6292ae4304959638e36aae7585a85f5b266a
|
|
BLAKE2b-256 checksum How to use checksums |
e3c84b4d89280d49c7193d0d6f0ebfdd756dea8bea7c1ad80e9334b020b3c477
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.12
|
Release files / roborregos_metrics_client-1.2.2024.3-py3-none-any.whl
| Download URL | roborregos_metrics_client-1.2.2024.3-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
791109aad26dd18bd1c5631bf6222642076788af716d0f20eb81f205655c0b76
|
|
BLAKE2b-256 checksum How to use checksums |
c70ac27500be43fbc05a37d5ea52c381b3d857fd4ec3feb92ce4f06d8fea4997
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.12
|