Skip to main content

Utilities for reading Atop files natively in Python

Project description

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.11.

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.

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

atoparser-3.3.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

atoparser-3.3.0-py3-none-any.whl (40.9 kB view details)

Uploaded Python 3

File details

Details for the file atoparser-3.3.0.tar.gz.

File metadata

  • Download URL: atoparser-3.3.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for atoparser-3.3.0.tar.gz
Algorithm Hash digest
SHA256 80750c28ed2de4b86d8a97a7b870125fbabca0dd75c4db7967336e47aa404d4a
MD5 bc24f9eba951d9801369bcfe834035a9
BLAKE2b-256 1d54fb6d10d1b23be09c15f1d41394448f50f5d029d8df29d4b665d69c374073

See more details on using hashes here.

File details

Details for the file atoparser-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: atoparser-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 40.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for atoparser-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff8af43742f4cce824ae74f6d7df99fb50ce298557cdd1bdd5f203218e874ce3
MD5 cdf49f21eb2cbcb59166b4f09e99e174
BLAKE2b-256 a481aa024cdb61cb87d70b574f5ed9549669150a1dc2a60c09811dffacc532f4

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