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 2.0.1
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-2.0.1.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| roborregos_metrics_client-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.0 kB
Release files / roborregos-metrics-client-2.0.1.tar.gz
| Download URL | roborregos-metrics-client-2.0.1.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
609aa12485971c587d80fd2422fee8ff6dfc74bf63fedf753ac5111da74ecaff
|
|
BLAKE2b-256 checksum How to use checksums |
f63ef251fd6571708391aedc6a0a1699f421051f2bfaf2417900e9ef3abbbbba
|
| 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-2.0.1-py3-none-any.whl
| Download URL | roborregos_metrics_client-2.0.1-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
52f4697edb341e07252898d74a7512b305aa21eaa89f1ffc5577fba41b62948c
|
|
BLAKE2b-256 checksum How to use checksums |
e7fc52029d054634e1d8360d9c1fe04597d63a3b7e85de5421a37fba0b3448a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.12
|