Skip to main content

os: linux python: 3.10+ python style: google imports: isort code style: black code style: pycodestyle doc style: pydocstyle static typing: mypy linting: pylint testing: pytest security: bandit license: MIT

Atoparser

Atoparser is a zero dependency Atop log processing library written in Python. The library supports reading binary C data directly from compressed or uncompressed Atop log files, without the need to install Atop or call a subprocess. The converted data contains structured Python objects, that can then be used for JSON, CSV, or other types of output, storage, and analysis.

For full information on the amazing performance monitoring software that creates these files, known as "Atop", refer to:
Atop - The one stop shop for all your tops

Table Of Contents

Compatibility

  • Supports Python 3.10+
  • Supports Atop 1.26 and 2.3 through 2.12.

Getting Started

Installation

Install Atoparser via pip:

pip install atoparser

Or via git clone:

git clone <path to fork>
cd atoparser
pip install .

Or build and install from wheel:

# Build locally.
git clone <path to fork>
cd atoparser
make wheel

# Push dist/atoparser*.tar.gz to environment where it will be installed.
pip install dist/atoparser*.tar.gz

How Tos

Read an Atop log with the example JSON command:

atoparser ~/atop.log -P CPU --pretty

Iterate over the C structs as Python objects:

import atoparser

with open(file, 'rb') as raw_file:
    header = atoparser.get_header(raw_file)
    for record, sstat, tstats, cgroups in atoparser.generate_statistics(raw_file, header):
        total_cycles = record.interval * sstat.cpu.nrcpu * header.hertz
        usage = 1 - sstat.cpu.all.itime / total_cycles
        print(f'CPU usage was {usage:.02%}')

Convert the C structs into JSON compatible objects:

import json
import atoparser

with open(file, 'rb') as raw_file:
    header = atoparser.get_header(raw_file)
    print(json.dumps(atoparser.struct_to_dict(header), indent=2))

Contribute

Refer to the Contributing Guide for information on how to contribute to this project.

Advanced Guides

Refer to Advanced How Tos for more advanced topics, such as adding a new Atop version.

Metadata

Release files for atoparser 3.3.1

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

Source distribution (sdist)

Source distribution for atoparser 3.3.1
File Size Uploaded
atoparser-3.3.1.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atoparser 3.3.1
File Interpreter ABI Platform
atoparser-3.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 68.1 kB

Release files / atoparser-3.3.1.tar.gz

Download URL atoparser-3.3.1.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4e79312cc034e96f76924e5abc74f448bb0b43d2a37dce191534175cc730f8af
BLAKE2b-256 checksum
How to use checksums
e5e3a9df7da0d329f6e76a04678043f9efdfa99048a37a2ffa45e097d68c211a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / atoparser-3.3.1-py3-none-any.whl

Download URL atoparser-3.3.1-py3-none-any.whl
Size 42.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bdd42d23158fb1a995013ae6a625d5268c77be22acdb22d9f8de7761a7a4fd1
BLAKE2b-256 checksum
How to use checksums
216c2d21b9aed79b20840febddfbf1b2d2016c5b981ea079316a5699b95921e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

3.3.1 This release

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

1 release file

3.0.0

1 release file

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