Skip to main content

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.register module and call register.
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

Architecture

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)

Release files for roborregos-metrics-client 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for roborregos-metrics-client 2.2.0
File Size Uploaded
roborregos-metrics-client-2.2.0.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for roborregos-metrics-client 2.2.0
File Interpreter ABI Platform
roborregos_metrics_client-2.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.0 kB

Release files / roborregos-metrics-client-2.2.0.tar.gz

Download URL roborregos-metrics-client-2.2.0.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5702bea0f668f25e01fc9476f3ae2a28a984b5937967e8317fc9f3069334c183
BLAKE2b-256 checksum
How to use checksums
31f37101ace2d96e531f55ac9896ed1e4c7d309df8ec4ff73ebcbec49e6eb31b
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.2.0-py3-none-any.whl

Download URL roborregos_metrics_client-2.2.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6610878afbdce926f5692354caa4cd164e658f5141aac90890d17b05534d2fb
BLAKE2b-256 checksum
How to use checksums
eda1d1ed9b93e1a02595f7838e0e90f3004d08766faa17c817c2b911c0be8ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.12

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 release files

2.1.0

2 release files

2.0.1

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page