ior-parser


Nameior-parser JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryIOR benchmark log file parser for performance analysis and comparison
upload_time2025-07-27 19:10:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords analysis benchmark hpc ior parser performance
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ior-parser

A Python package for parsing IOR (Interleaved Or Random) benchmark log files. Extracts performance metrics, test configuration, and filesystem information for analysis, reporting, and automation.

## Features

- Parse IOR log files from command line or Python API
- Extracts test setup, timing, options, and results sections
- Converts sizes to bytes and timestamps to Unix time
- Outputs structured JSON for further analysis
- CLI and Python API usage
- Supports IOR logs from multiple versions and verbosity levels

## Installation

```bash
pip install ior-parser
```

Or for development:

```bash
git clone https://github.com/izzet/ior-parser.git
cd ior-parser
pip install -e .
```

## Usage

### Command Line

```bash
ior_parser tests/logs/write_only.log --json --pretty
```

Example output:

```json
{
  "test_setup": {
    "ior_version": "4.0.0",
    "command_line": "bin/ior -a POSIX -s 128 -b 4M -t 1M -F -w -o /tmp/write_only/data/testfile",
    "machine": "Linux corona211",
    "test_id": "0",
    "path": "/tmp/write_only/data/testfile.00000000",
    "file_system_info_text": "14.3 TiB   Used FS: 0.4%   Inodes: 190.7 Mi   Used Inodes: 0.4%",
    "file_system_info": {
      "total_size_bytes": 15723016277196,
      "used_fs_percent": 0.4,
      "total_inodes": 190700000,
      "used_inodes_percent": 0.4
    }
  },
  "test_times": {
    "began_text": "Sun Jul 27 08:35:50 2025",
    "began": 1753630550,
    "start_time_text": "Sun Jul 27 08:35:50 2025",
    "start_time": 1753630550,
    "finished_text": "Sun Jul 27 08:35:51 2025",
    "finished": 1753630551,
    "elapsed_seconds": 1.0
  },
  "options": {
    "api": "POSIX",
    "api_version": null,
    "test_filename": "/tmp/write_only/data/testfile",
    "access": "file-per-process",
    "type": "independent",
    "segments": 128,
    "ordering_in_file": "sequential",
    "ordering_inter_file": "no tasks offsets",
    "nodes": 1,
    "tasks": 1,
    "clients_per_node": 1,
    "repetitions": 1,
    "xfer_size_text": "1 MiB",
    "xfer_size_bytes": 1048576,
    "block_size_text": "4 MiB",
    "block_size_bytes": 4194304,
    "aggregate_file_size_text": "512 MiB",
    "aggregate_file_size_bytes": 536870912
  },
  "results": {
    "write": {
      "bandwidth_mib_max": 660.64,
      "bandwidth_mib_min": 660.64,
      "bandwidth_mib_mean": 660.64,
      "bandwidth_mib_std": 0.0,
      "ops_max": 660.64,
      "ops_min": 660.64,
      "ops_mean": 660.64,
      "ops_std": 0.0,
      "time_seconds_mean": 0.77501
    }
  },
  "_source_file": "tests/logs/write_only.log"
}
```

### Python API

```python
from ior_parser import parse_ior_log
result = parse_ior_log("path/to/ior.log")
print(result.to_dict())
```

## Output Structure

- `test_setup`: IOR version, command line, machine, path, filesystem info
- `test_times`: began, finished, elapsed (as Unix timestamps)
- `options`: parsed IOR options (API, block size, transfer size, etc.)
- `results`: read/write operation metrics (bandwidth, IOPS, time)

## Development

- Lint: `ruff check .`
- Format: `ruff format .`
- Test: `pytest`
- Pre-commit: `pre-commit run --all-files`

## License

MIT

## Author

Izzet Yildirim (<izzetcyildirim@gmail.com>)

## Links

- [GitHub](https://github.com/izzet/ior-parser)
- [Bug Tracker](https://github.com/izzet/ior-parser/issues)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ior-parser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Izzet Yildirim <izzetcyildirim@gmail.com>",
    "keywords": "analysis, benchmark, hpc, ior, parser, performance",
    "author": null,
    "author_email": "Izzet Yildirim <izzetcyildirim@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e3/8b/cdbcadeb2ee16936d86d68b2209c546e755d5842fb6c7a062d2a73d705bd/ior_parser-0.1.1.tar.gz",
    "platform": null,
    "description": "# ior-parser\n\nA Python package for parsing IOR (Interleaved Or Random) benchmark log files. Extracts performance metrics, test configuration, and filesystem information for analysis, reporting, and automation.\n\n## Features\n\n- Parse IOR log files from command line or Python API\n- Extracts test setup, timing, options, and results sections\n- Converts sizes to bytes and timestamps to Unix time\n- Outputs structured JSON for further analysis\n- CLI and Python API usage\n- Supports IOR logs from multiple versions and verbosity levels\n\n## Installation\n\n```bash\npip install ior-parser\n```\n\nOr for development:\n\n```bash\ngit clone https://github.com/izzet/ior-parser.git\ncd ior-parser\npip install -e .\n```\n\n## Usage\n\n### Command Line\n\n```bash\nior_parser tests/logs/write_only.log --json --pretty\n```\n\nExample output:\n\n```json\n{\n  \"test_setup\": {\n    \"ior_version\": \"4.0.0\",\n    \"command_line\": \"bin/ior -a POSIX -s 128 -b 4M -t 1M -F -w -o /tmp/write_only/data/testfile\",\n    \"machine\": \"Linux corona211\",\n    \"test_id\": \"0\",\n    \"path\": \"/tmp/write_only/data/testfile.00000000\",\n    \"file_system_info_text\": \"14.3 TiB   Used FS: 0.4%   Inodes: 190.7 Mi   Used Inodes: 0.4%\",\n    \"file_system_info\": {\n      \"total_size_bytes\": 15723016277196,\n      \"used_fs_percent\": 0.4,\n      \"total_inodes\": 190700000,\n      \"used_inodes_percent\": 0.4\n    }\n  },\n  \"test_times\": {\n    \"began_text\": \"Sun Jul 27 08:35:50 2025\",\n    \"began\": 1753630550,\n    \"start_time_text\": \"Sun Jul 27 08:35:50 2025\",\n    \"start_time\": 1753630550,\n    \"finished_text\": \"Sun Jul 27 08:35:51 2025\",\n    \"finished\": 1753630551,\n    \"elapsed_seconds\": 1.0\n  },\n  \"options\": {\n    \"api\": \"POSIX\",\n    \"api_version\": null,\n    \"test_filename\": \"/tmp/write_only/data/testfile\",\n    \"access\": \"file-per-process\",\n    \"type\": \"independent\",\n    \"segments\": 128,\n    \"ordering_in_file\": \"sequential\",\n    \"ordering_inter_file\": \"no tasks offsets\",\n    \"nodes\": 1,\n    \"tasks\": 1,\n    \"clients_per_node\": 1,\n    \"repetitions\": 1,\n    \"xfer_size_text\": \"1 MiB\",\n    \"xfer_size_bytes\": 1048576,\n    \"block_size_text\": \"4 MiB\",\n    \"block_size_bytes\": 4194304,\n    \"aggregate_file_size_text\": \"512 MiB\",\n    \"aggregate_file_size_bytes\": 536870912\n  },\n  \"results\": {\n    \"write\": {\n      \"bandwidth_mib_max\": 660.64,\n      \"bandwidth_mib_min\": 660.64,\n      \"bandwidth_mib_mean\": 660.64,\n      \"bandwidth_mib_std\": 0.0,\n      \"ops_max\": 660.64,\n      \"ops_min\": 660.64,\n      \"ops_mean\": 660.64,\n      \"ops_std\": 0.0,\n      \"time_seconds_mean\": 0.77501\n    }\n  },\n  \"_source_file\": \"tests/logs/write_only.log\"\n}\n```\n\n### Python API\n\n```python\nfrom ior_parser import parse_ior_log\nresult = parse_ior_log(\"path/to/ior.log\")\nprint(result.to_dict())\n```\n\n## Output Structure\n\n- `test_setup`: IOR version, command line, machine, path, filesystem info\n- `test_times`: began, finished, elapsed (as Unix timestamps)\n- `options`: parsed IOR options (API, block size, transfer size, etc.)\n- `results`: read/write operation metrics (bandwidth, IOPS, time)\n\n## Development\n\n- Lint: `ruff check .`\n- Format: `ruff format .`\n- Test: `pytest`\n- Pre-commit: `pre-commit run --all-files`\n\n## License\n\nMIT\n\n## Author\n\nIzzet Yildirim (<izzetcyildirim@gmail.com>)\n\n## Links\n\n- [GitHub](https://github.com/izzet/ior-parser)\n- [Bug Tracker](https://github.com/izzet/ior-parser/issues)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "IOR benchmark log file parser for performance analysis and comparison",
    "version": "0.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/izzet/ior-parser/issues",
        "Documentation": "https://github.com/izzet/ior-parser#readme",
        "Homepage": "https://github.com/izzet/ior-parser",
        "Repository": "https://github.com/izzet/ior-parser"
    },
    "split_keywords": [
        "analysis",
        " benchmark",
        " hpc",
        " ior",
        " parser",
        " performance"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d0610fc92881c6515d6a65940c6f4f2a438f1b114d904978fb2d2bd3620759c",
                "md5": "ced19363e5531e834c54ae89b9b384fc",
                "sha256": "c8d04988e481d09c27f1133b31c108ed8328527440288a5ff9724875181603f0"
            },
            "downloads": -1,
            "filename": "ior_parser-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ced19363e5531e834c54ae89b9b384fc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10595,
            "upload_time": "2025-07-27T19:10:50",
            "upload_time_iso_8601": "2025-07-27T19:10:50.786249Z",
            "url": "https://files.pythonhosted.org/packages/5d/06/10fc92881c6515d6a65940c6f4f2a438f1b114d904978fb2d2bd3620759c/ior_parser-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e38bcdbcadeb2ee16936d86d68b2209c546e755d5842fb6c7a062d2a73d705bd",
                "md5": "28e9ab0ad73186779bc1ee1654b032cd",
                "sha256": "1547f4c580bdbf71e72d3feadf71c274cff8c5ceccddfa8eb4fd9917f24a9e9f"
            },
            "downloads": -1,
            "filename": "ior_parser-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "28e9ab0ad73186779bc1ee1654b032cd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 34864,
            "upload_time": "2025-07-27T19:10:52",
            "upload_time_iso_8601": "2025-07-27T19:10:52.258566Z",
            "url": "https://files.pythonhosted.org/packages/e3/8b/cdbcadeb2ee16936d86d68b2209c546e755d5842fb6c7a062d2a73d705bd/ior_parser-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 19:10:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "izzet",
    "github_project": "ior-parser",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ior-parser"
}
        
Elapsed time: 2.29453s