Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mtnlog-1.2.10.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

mtnlog-1.2.10-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file mtnlog-1.2.10.tar.gz.

File metadata

  • Download URL: mtnlog-1.2.10.tar.gz
  • Upload date:
  • Size: 7.5 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

Hashes for mtnlog-1.2.10.tar.gz
Algorithm Hash digest
SHA256 6b94d42e623e9a28c162baf035422b3f54c0a55108e759094527a70011ed5b36
MD5 6aae21caf3e3e63beaee1ccde4f25b20
BLAKE2b-256 96f69b7008c6031655e351ac11999c395489d8f74a6873a6f14d6cad40452b15

See more details on using hashes here.

File details

Details for the file mtnlog-1.2.10-py3-none-any.whl.

File metadata

  • Download URL: mtnlog-1.2.10-py3-none-any.whl
  • Upload date:
  • Size: 8.5 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

Hashes for mtnlog-1.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 41e286f85b55bc0e9917f6706b737142c5865a44ae7d542f04919d03f87056ca
MD5 52ff60603120cbbac2b01d4cbe2f46e9
BLAKE2b-256 6595ea5d6023d6e8fb348566a7f0e39ad5a6d16304814128d90ffbab5cbfe3be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page