A simple performance logger for Python
Project description
mtnlog - A simple multinode performance logger for Python
Introduction
mtnlog is a simple multinode performance logger for Python. It is designed to be used in a similar way to Python's built-in logging module, but with a focus on performance logging. It provides a simple API for logging performance data, including start and end times, and allows for easy integration with other logging systems.
Installation
You can install mtnlog using pip:
pip install mtnlog
Usage
To use mtnlog, you have two features: JSONLogger and PerformanceLogger and PerformancePlotter.
JSONLogger
The JSONLogger class is a simple logger that writes performance data to a JSON file. You can create a new JSONLogger instance by passing a file path to the constructor:
from mtnlog import JSONLogger
logger = JSONLogger(log_dir='logs') # logs is the directory where the log file will be saved
You can then use the log method to log performance data:
logger.log('<your_dict>', filename='log') # your_dict is a dictionary with the data you want to log / filename is the name of the file
your_dict is a dictionary with the data you want to log.
filename is the name of the file where the data will be saved
PerformanceLogger
The PerformanceLogger class is a logger for system performance data. It logs the the time taken to execute the block, as well as the CPU, memory, and GPU usage. You can create a new PerformanceLogger instance by passing a file path to the constructor:
from mtnlog import PerformanceLogger
collector = PerformanceLogger(log_dir="<your_log_dir>", log_node="<current_node>")
your_log_dir is the directory where the log file will be saved.
current_node is the number of the node you are logging.
You can then use the change_tag method to change the tag of the log:
collector.change_tag("<new_tag>")
new_tag is the new tag you want to use.
To stop logging, you can use the stop method:
collector.stop()
PerformancePlotter
The PerformancePlotter class is a plotter for system performance data. It plots the time taken to execute the block, as well as the CPU, memory, GPU, and network usage. You can create a new PerformancePlotter instance by passing a file path to the constructor:
from mtnlog import PerformancePlotter
plotter = PerformancePlotter(base_dir="<your_base_dir>", log_node="<current_node>")
your_base_dir is the base directory where the log file will be saved.
current_node is the number of the node you are logging.
You can then use the plot method to plot the data:
plotter.plot()
Example
Here is an example of how to use mtnlog:
from mtnlog import JSONLogger, PerformanceLogger, PerformancePlotter
# Create a JSONLogger instance
logger = JSONLogger(log_dir='logs')
# Log some data
logger.log({'message': 'Hello, world!'}, filename='log')
# Create a PerformanceLogger instance
collector = PerformanceLogger(log_dir='logs', log_node="0")
# Change the tag
collector.change_tag('new_tag')
# Stop logging
collector.stop()
# Create a PerformancePlotter instance
plotter = PerformancePlotter(base_dir='logs', log_node="0")
# Plot the data
plotter.plot()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mtnlog-1.2.17.tar.gz.
File metadata
- Download URL: mtnlog-1.2.17.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.14.21-150400.24.81_12.0.86-cray_shasta_c
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62ae30f041bc62b390fa1cc45533d05a007f62cd8aa1dacd6edf532e21aeffec
|
|
| MD5 |
34f1f07942532bc9a972a37b4ff17ef4
|
|
| BLAKE2b-256 |
a11aed8afec3126c3f5ba296b6660be4b82670b6f7a03a64ef611ca4b4252063
|
File details
Details for the file mtnlog-1.2.17-py3-none-any.whl.
File metadata
- Download URL: mtnlog-1.2.17-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.14.21-150400.24.81_12.0.86-cray_shasta_c
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c57568fae8aa0ecd18d7b59b47ee8a04f13d22f847ec9a4ab1b258529285e6d
|
|
| MD5 |
4d679d921e6bc60d303af4a856ec89b9
|
|
| BLAKE2b-256 |
0b4a24912149d12b9ebecb910087957847a81a2719c4c00563a595b7710a5326
|