Skip to main content

cpu and memory tracing for process trees

Project description

Latest Version Python Support

Metrace - cpu/memory tracing for process trees

Metrace makes it easy to get a nice interactive html plot of the cpu/memory usage of a whole process tree.

Install

Metrace depends on Plotly and Psutil, both will be installed with metrace using pip:

$ pip install metrace

Client usage (optional)

Metrace lets you annotate specific parts of your code with scopes and these will become part of your final plot output and end up look like this:

Metrace gives you a context manager trace you can wrap code blocks with:

$ cat foobar.py

from metrace import trace

with trace('creating 1000 objects'):
    l = []
    for i in range(1000):
        l.append(object())

To collect these traces you run your script with metrace as usual:

$ metrace run python foobar.py

Commandline Usage

After installation you will have the metrace command available.

$ metrace run python main.py && metrace plot

It has two subcommands:

run

$ metrace run python foobar.py

Runs a process and collects cpu/memory metrics for both the process and its children seperately.

Metrace outputs the metrics in a json file in current working directory named like: metrace_1568385178098218.json with the number being milliseconds since epoch.

plot

$ metrace plot
# or
# to not open the html report automatically:
$ metrace plot --autoopen=no
# or
# to specify input/output files
$ metrace plot -i metrace_1568385178098218.json -o metrace_report.html

Plots cpu/memory usage for a given, or latest found, metrace json file.

Output is a html file where you can download the images, zoom in and hover to inspect the different traces.

Samples

Docs folder contains a sample of a metrace json file and a metrace html report

Attribution

plotly.min.js Licensed under MIT, has been included in this library here: metrace/plotly_latest.min.js

Project details


Download files

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

Files for metrace, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size metrace-1.0.1.tar.gz (966.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page