{"id":19282419,"url":"https://github.com/chaostoolkit/chaostoolkit-reporting","last_synced_at":"2025-04-22T01:31:35.513Z","repository":{"id":47983378,"uuid":"115634983","full_name":"chaostoolkit/chaostoolkit-reporting","owner":"chaostoolkit","description":"Reporting plugin for chaostoolkit journal results","archived":false,"fork":false,"pushed_at":"2024-12-02T13:07:48.000Z","size":158,"stargazers_count":10,"open_issues_count":17,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T17:57:53.056Z","etag":null,"topics":["chaostoolkit","chaostoolkit-plugin"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaostoolkit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-28T15:17:20.000Z","updated_at":"2024-12-02T13:07:52.000Z","dependencies_parsed_at":"2024-06-19T19:02:18.862Z","dependency_job_id":"abbcfdb7-791c-4013-899a-a4e60037af08","html_url":"https://github.com/chaostoolkit/chaostoolkit-reporting","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit%2Fchaostoolkit-reporting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit%2Fchaostoolkit-reporting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit%2Fchaostoolkit-reporting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit%2Fchaostoolkit-reporting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaostoolkit","download_url":"https://codeload.github.com/chaostoolkit/chaostoolkit-reporting/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250162036,"owners_count":21385031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chaostoolkit","chaostoolkit-plugin"],"created_at":"2024-11-09T21:26:47.339Z","updated_at":"2025-04-22T01:31:35.118Z","avatar_url":"https://github.com/chaostoolkit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A general purpose reporting generator for Chaos Toolkit\n\n[![Build, Test, and Lint](https://github.com/chaostoolkit/chaostoolkit-reporting/actions/workflows/build.yaml/badge.svg)](https://github.com/chaostoolkit/chaostoolkit-reporting/actions/workflows/build.yaml)\n\nThe Chaos Toolkit reporting extension library.\n\n## Purpose\n\nThe purpose of this library is to provide reporting support to the\n[Chaos Toolkit][chaostoolkit] experiment results.\n\n[chaostoolkit]: https://chaostoolkit.org\n\n## Features\n\nThe library takes the journal generated by the `chaos run` command\nand transforms into a human friendly report. The report can be a standalone\nPDF or HTML document.\n\n## Install\n\nInstall this package as any other Python packages:\n\n```console\n$ pip install -U chaostoolkit-reporting\n```\n\nNotice that this draws a few [dependencies][deps]:\n\n[deps]: https://github.com/chaostoolkit/chaostoolkit-reporting/blob/master/requirements.txt\n\nSome of them are LGPL v3 licensed.\n\nYou will also need to [install some additional dependencies](uni-install.md) that the `chaos report` command relies upon.\n\n\n## Usage\n\nOnce installed, a new `report` subcommand will be made available to the\n`chaos` command, use it as follows:\n\n```console\n$ chaos report --export-format=html5 journal.json report.html\n```\n\nor, for a PDF document:\n\n```console\n$ chaos report --export-format=pdf journal.json report.pdf\n```\n\nYou can also generate a single report from many journals at once:\n\n```console\n$ chaos report --export-format=pdf journal-1.json journal-2 journal-3 report.pdf\n```\n\nOr more succinctly:\n\n```console\n$ chaos report --export-format=pdf journal-*.json report.pdf\n```\n\n## Download a Docker Image\n\nAs the dependencies for this plugin can be difficult to get right, we also\nprovide a docker image - note that this image is rather big with 1.4Gb to\npull. You can install `Docker` from the [Docker Hub][dockerhub].\n\n[dockerhub]: https://hub.docker.com/search?q=\u0026type=edition\u0026offering=community\n\n```console\n$ docker pull chaostoolkit/reporting\n```\n\n### Use a Docker container\n\nTo generate a PDF report using the Docker image you must first ensure that you are running the command from where the `journal.json`\nfile, generated during an experiment run, can be found. To check for this you can run:\n\n\n```console\n$ ls\n```\n\nAnd you should see the `journal.json` file:\n\n```\njournal.json\n```\n\nNow you can run the docker command:\n\n```console\n$ docker run \\\n    --user `id -u` \\\n    -v `pwd`:/tmp/result \\\n    -it \\\n    chaostoolkit/reporting\n```\n\nThis will create `chaostoolkit.log` and `report.pdf` files in this directory.\n\n```console\n$ ls\n```\n\n```\nchaostoolkit.log   journal.json   report.pdf\n```\n\nThe `report.json` file will be owned by the user id returned by the command `id -u`, it should\nbe your user. The reason we specify a user is that, by default, the container\nruns as root and the image doesn't make a guess about which user will run\nthe container. If you don't have the `id` command you can set the value\nmanually as follows instead: `--user 1000:1000` assuming both your user and\ngroup ids are `1000`.\n\nThe default command of the image is equivalent to running this without a\ncontainer:\n\n```console\n$ chaos report --export-format=pdf journal.json report.pdf\n```\n\nIf you wish to override that command, pass the `chaos report` parameters as\nfollows:\n\n```console\n$ docker run \\\n    --user `id -u` \\\n    -v `pwd`:/tmp/result \\\n    -it \\\n    chaostoolkit/reporting -- report --export-format=html5 journal.json report.html\n\n```\n\nAnd the same files will be created:\n\n```console\n$ ls\n```\n\n```\nchaostoolkit.log   journal.json   report.pdf\n```\n\n## Contribute\n\nContributors to this project are welcome as this is an open-source effort that\nseeks [discussions][join] and continuous improvement.\n\n[join]: https://join.chaostoolkit.org/\n\nFrom a code perspective, if you wish to contribute, you will need to run a \nPython 3.7+ environment. Then, fork this repository and submit a PR. The\nproject cares for code readability and checks the code style to match best\npractices defined in [PEP8][pep8]. Please also make sure you provide tests\nwhenever you submit a PR so we keep the code reliable.\n\n[pep8]: https://pycodestyle.readthedocs.io/en/latest/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit%2Fchaostoolkit-reporting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaostoolkit%2Fchaostoolkit-reporting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit%2Fchaostoolkit-reporting/lists"}