Name | ior-parser JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | IOR benchmark log file parser for performance analysis and comparison |
upload_time | 2025-07-27 19:10:52 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
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"
}