# NB HDR plotter
A tool to plot
[HDR histogram](http://hdrhistogram.org)
data (and `histostats` output) from
[NoSQLBench](https://docs.nosqlbench.io/).
## Setup
### Pre-requisites
Python 3.8+ is required.
### Installation
Install with
```
pip install nb-hdr-plotter
```
## Quickstart
Assuming you have an `HDR` histogram file to plot:
```
nb_hdr_plotter \
hdr_data.log \
-b -c -s \
-p SampleData \
-d SampleDump \
-m cqlkeyvalue_default_main.result
```
Assuming you have a `histostats` output file to plot:
```
histostats_plotter \
histostats.log \
-p HistostatsSample \
-m cqlkeyvalue_default_main.result
```
The Github repository contains
[sample plots](https://github.com/hemidactylus/nb_hdr_plotter/tree/main/sample_data)
obtained with these tools.
## More options
- `nb_hdr_plotter` can dump to a `txt` table file (as opposed to a PNG image);
- it can selectively plot histogram, percentiles, stability plot;
- it can interactively help you select the metric to plot;
- it can optionally refrain from time unit conversion and overwrite files.
Check out the online help:
```
$> nb_hdr_plotter -h
usage: nb_hdr_plotter [-h] [-i] [-m METRICTAG] [-b] [-c] [-s] [-p PLOTFILEROOT] [-d DUMPFILEROOT] [-f] [-r] filename
Manipulate HDR data generated in NoSQLBench.
positional arguments:
filename HDR input data
optional arguments:
-h, --help show this help message and exit
-i, --inspect Detailed input breakdown
Analysis tasks:
-m METRICTAG, --metric METRICTAG
Work on the specified metric tag (interactive choice if not provided)
-b, --baseplot Create standard distribution plot
-c, --percentiles Create percentile analysis
-s, --stability Perform stability analysis (per-slice plots)
Output control:
-p PLOTFILEROOT, --plot PLOTFILEROOT
Create plot images (with given file root)
-d DUMPFILEROOT, --dump DUMPFILEROOT
Dump to data files (with given file root)
-f, --force Overwrite existing file(s) if necessary
-r, --raw Keep raw values found in histograms (no unit conversions)
```
- `histostats_plotter` can include/exclude plotting the "max" alongside the other percentiles;
- it offers interactive selection of the metric to plot;
- it optionally overwrites existing files:
```
$> histostats_plotter -h
usage: histostats_plotter [-h] [-m METRICTAG] [-p PLOTFILEROOT] [--include-max] [-f] filename
Quickly plot "--log-histostats" output from NoSQLBench to an image.
positional arguments:
filename Histostats input file
optional arguments:
-h, --help show this help message and exit
-m METRICTAG, --metric METRICTAG
Work on the specified metric tag (interactive choice if not provided)
-p PLOTFILEROOT, --plot PLOTFILEROOT
Create plot image (with given file root), automatic if not provided
--include-max Include "max" to plotting
-f, --force Overwrite existing file if necessary
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hemidactylus/nb_hdr_plotter",
"name": "nb-hdr-plotter",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8, <4",
"maintainer_email": "",
"keywords": "nosqlbench,plotting,hdr",
"author": "Stefano Lottini",
"author_email": "stefano.lottini@datastax.com",
"download_url": "https://files.pythonhosted.org/packages/57/72/5d936ab382ea03fcb1d770766665652efbaa7939f0c6708bdd9a10bdc0b9/nb_hdr_plotter-0.1.2.tar.gz",
"platform": null,
"description": "# NB HDR plotter\n\nA tool to plot\n[HDR histogram](http://hdrhistogram.org)\ndata (and `histostats` output) from\n[NoSQLBench](https://docs.nosqlbench.io/).\n\n## Setup\n\n### Pre-requisites\n\nPython 3.8+ is required.\n\n### Installation\n\nInstall with\n\n```\npip install nb-hdr-plotter\n```\n\n## Quickstart\n\nAssuming you have an `HDR` histogram file to plot:\n\n```\nnb_hdr_plotter \\\n hdr_data.log \\\n -b -c -s \\\n -p SampleData \\\n -d SampleDump \\\n -m cqlkeyvalue_default_main.result\n```\n\nAssuming you have a `histostats` output file to plot:\n\n```\nhistostats_plotter \\\n histostats.log \\\n -p HistostatsSample \\\n -m cqlkeyvalue_default_main.result\n```\n\nThe Github repository contains\n[sample plots](https://github.com/hemidactylus/nb_hdr_plotter/tree/main/sample_data)\nobtained with these tools.\n\n## More options\n\n- `nb_hdr_plotter` can dump to a `txt` table file (as opposed to a PNG image);\n- it can selectively plot histogram, percentiles, stability plot;\n- it can interactively help you select the metric to plot;\n- it can optionally refrain from time unit conversion and overwrite files.\n\nCheck out the online help:\n```\n$> nb_hdr_plotter -h\nusage: nb_hdr_plotter [-h] [-i] [-m METRICTAG] [-b] [-c] [-s] [-p PLOTFILEROOT] [-d DUMPFILEROOT] [-f] [-r] filename\n\nManipulate HDR data generated in NoSQLBench.\n\npositional arguments:\n filename HDR input data\n\noptional arguments:\n -h, --help show this help message and exit\n -i, --inspect Detailed input breakdown\n\nAnalysis tasks:\n -m METRICTAG, --metric METRICTAG\n Work on the specified metric tag (interactive choice if not provided)\n -b, --baseplot Create standard distribution plot\n -c, --percentiles Create percentile analysis\n -s, --stability Perform stability analysis (per-slice plots)\n\nOutput control:\n -p PLOTFILEROOT, --plot PLOTFILEROOT\n Create plot images (with given file root)\n -d DUMPFILEROOT, --dump DUMPFILEROOT\n Dump to data files (with given file root)\n -f, --force Overwrite existing file(s) if necessary\n -r, --raw Keep raw values found in histograms (no unit conversions)\n```\n\n- `histostats_plotter` can include/exclude plotting the \"max\" alongside the other percentiles;\n- it offers interactive selection of the metric to plot;\n- it optionally overwrites existing files:\n\n\n```\n$> histostats_plotter -h\nusage: histostats_plotter [-h] [-m METRICTAG] [-p PLOTFILEROOT] [--include-max] [-f] filename\n\nQuickly plot \"--log-histostats\" output from NoSQLBench to an image.\n\npositional arguments:\n filename Histostats input file\n\noptional arguments:\n -h, --help show this help message and exit\n -m METRICTAG, --metric METRICTAG\n Work on the specified metric tag (interactive choice if not provided)\n -p PLOTFILEROOT, --plot PLOTFILEROOT\n Create plot image (with given file root), automatic if not provided\n --include-max Include \"max\" to plotting\n -f, --force Overwrite existing file if necessary\n```\n",
"bugtrack_url": null,
"license": "LICENSE.txt",
"summary": "Tool to plot HDR histogram data and histostats data generated by NoSQLBench",
"version": "0.1.2",
"split_keywords": [
"nosqlbench",
"plotting",
"hdr"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "772287c438e71452e2bba18bc82e217815482a83d76e1d912c9ce606735c9050",
"md5": "f330d06e3bbea8f8c3e311292970ba32",
"sha256": "2e7204ce313d9e3a7b165583e753698a0db784cb3a6c7cdd85de651c502df719"
},
"downloads": -1,
"filename": "nb_hdr_plotter-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f330d06e3bbea8f8c3e311292970ba32",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8, <4",
"size": 17653,
"upload_time": "2023-02-04T23:41:21",
"upload_time_iso_8601": "2023-02-04T23:41:21.399408Z",
"url": "https://files.pythonhosted.org/packages/77/22/87c438e71452e2bba18bc82e217815482a83d76e1d912c9ce606735c9050/nb_hdr_plotter-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "57725d936ab382ea03fcb1d770766665652efbaa7939f0c6708bdd9a10bdc0b9",
"md5": "a5405da33ec2229e1fab1bb776842e0f",
"sha256": "94e7e105dbca48446e9b3061fb1f6efcd208cda5a2edea398495f70813703396"
},
"downloads": -1,
"filename": "nb_hdr_plotter-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "a5405da33ec2229e1fab1bb776842e0f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8, <4",
"size": 14839,
"upload_time": "2023-02-04T23:41:23",
"upload_time_iso_8601": "2023-02-04T23:41:23.127743Z",
"url": "https://files.pythonhosted.org/packages/57/72/5d936ab382ea03fcb1d770766665652efbaa7939f0c6708bdd9a10bdc0b9/nb_hdr_plotter-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-04 23:41:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "hemidactylus",
"github_project": "nb_hdr_plotter",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nb-hdr-plotter"
}