{"id":22509126,"url":"https://github.com/lukaspustina/usereport-rs","last_synced_at":"2025-08-03T13:31:17.852Z","repository":{"id":57671314,"uuid":"229265044","full_name":"lukaspustina/usereport-rs","owner":"lukaspustina","description":"Collect system information for the first 60 seconds of a performance analysis","archived":false,"fork":false,"pushed_at":"2020-02-26T12:34:09.000Z","size":1212,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-21T11:12:12.528Z","etag":null,"topics":["analysis","cli","performance","sre","statistics"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukaspustina.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-20T12:55:51.000Z","updated_at":"2023-03-03T22:22:36.000Z","dependencies_parsed_at":"2022-09-14T13:00:52.847Z","dependency_job_id":null,"html_url":"https://github.com/lukaspustina/usereport-rs","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaspustina%2Fusereport-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaspustina%2Fusereport-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaspustina%2Fusereport-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukaspustina%2Fusereport-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukaspustina","download_url":"https://codeload.github.com/lukaspustina/usereport-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228547836,"owners_count":17935139,"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":["analysis","cli","performance","sre","statistics"],"created_at":"2024-12-07T01:27:36.114Z","updated_at":"2024-12-07T01:27:36.763Z","avatar_url":"https://github.com/lukaspustina.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# USE-Report\n\n[![Linux \u0026 OS X Build Status](https://dev.azure.com/lukaspustina/usereport-rs/_apis/build/status/lukaspustina.usereport-rs?branchName=master)](https://dev.azure.com/lukaspustina/usereport-rs/_build/latest?definitionId=3\u0026branchName=master) [![](https://img.shields.io/crates/v/usereport-rs.svg)](https://crates.io/crates/usereport-rs) [![](https://docs.rs/usereport-rs/badge.svg)](https://docs.rs/crate/usereport-rs/) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg?label=License)](./LICENSE)\n\n`usereport` gathers system performance statistics on the local host that may be used as the base information for a performance analysis following the [USE methodology](http://www.brendangregg.com/usemethod.html) created by Brendan Gregg. Please see [this blog post](http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html) by Brendan for an introduction to USE and the statistics gathered by this tool. The `usereport` tool is part of my base server installation. I use it everywhere. It allows me to quickly assess several system characteristics in case of performance issues.\n\n`usereport` comes with bundled configuration files for Linux and macOS, respectively, that are built into the corresponding binary. The configuration files contain a pre-defined selection of performance measurement and analysis tools. Please see the `contrib` directory for these configuration tools. In case of Linux, several profiles allow for statistics gathering depending on the context of your analysis, i.e., `mem` for virtual memory and `net` for network issues. With `usereport` you do not need to remember the exact tools and their parameters to conduct a performance analysis. Furthermore, each tool configuration contains descriptions of the output to ease interpretation of results, e.g., meaning and metrics of the gathered values, as well as links to further information.\n\nThe output format of `usereport` is usually Markdown or HTML for convenient reading. JSON output is also available for automatic processing, or you can define your own output format using [Handlebars templates](https://handlebarsjs.com). The following screenshots present parts of the HTML output created by `usereport` running the `net` profile performance analysis on Linux -- see the full report [here](https://htmlpreview.github.io/?https://github.com/lukaspustina/usereport-rs/blob/master/docs/linux-net-usereport.html).\n\n\u003cp float=\"center\"\u003e\n\u003ccenter\u003e\n  \u003ca href=\"docs/linux-net-usereport-html-1.jpg\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/lukaspustina/usereport-rs/master/docs/linux-net-usereport-html-1.jpg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"docs/linux-net-usereport-html-2.jpg\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/lukaspustina/usereport-rs/master/docs/linux-net-usereport-html-2.jpg\" /\u003e\u003c/a\u003e\n\u003c/center\u003e\n\u003c/p\u003e\n\nThe main functionality is exposed as a Rust library to be used in your own projects at your convenience.\n\n## Command Line Tool\n\n### Help\n\n```sh\nusereport 0.1.2\nLukas Pustina \u003clukas@pustina.net\u003e\nCollect system information for the first 60 seconds of a performance analysis\nUSAGE:\n    usereport [FLAGS] [OPTIONS] [+|-command]...\nFLAGS:\n    -d, --debug                   Activate debug mode\n    -h, --help                    Prints help information\n        --no-progress             Force to hide progress bar while waiting for all commands to finish\n        --progress                Force to show progress bar while waiting for all commands to finish\n        --show-commands           Show available commands\n        --show-config             Show active config\n        --show-output-template    Show active template\n        --show-profiles           Show available profiles\n    -V, --version                 Prints version information\nOPTIONS:\n    -c, --config \u003cconfig\u003e                      Configuration from file, or default if not present\n    -o, --output \u003coutput\u003e                      Output format [default: markdown]  [possible values: hbs,\n                                               html, json, markdown]\n        --output-template \u003coutput-template\u003e    Set output template if output is set to \"hbs\"\n        --parallel \u003cparallel\u003e                  Set number of commands to run in parallel; overrides setting from config\n                                               file\n    -p, --profile \u003cprofile\u003e                    Set profile to use\n        --repetitions \u003crepetitions\u003e            Set number of how many times to run commands in row; overrides setting\n                                               from config file\nARGS:\n    \u003c+|-command\u003e...    Add or remove commands from selected profile by prefixing the command's name with '+' or '-',\n                       respectively, e.g., +uname -dmesg; you may need to use '--' to signify the end of the options\n```\n\n### Example on Linux\n\n```sh\nusereport --profile mem --progress --repetitions 3 --output html -- +mpstat\n```\n\n## Installation\n\n### Ubuntu Bionic [x86_64]\n\nPlease add my [PackageCloud](https://packagecloud.io/lukaspustina/opensource) open source repository and install _usereport_ via apt.\n\n```sh\ncurl -s https://packagecloud.io/install/repositories/lukaspustina/opensource/script.deb.sh | sudo bash\nsudo apt-get install usereport\n```\n\n### Linux Binaries [x86_64]\n\nThere are binaries available at the GitHub [Release Page](https://github.com/lukaspustina/usereport-rs/releases). The binaries get compiled on Ubuntu Bionic.\n\n### From Source\n\nPlease install Rust via [rustup](https://www.rustup.rs) and then run\n\n\n```sh\ncargo install --all-features usereport-rs\n```\n\n## Postcardware\n\nYou're free to use `usereport`. If you find it useful, I would highly appreciate you sending me a postcard from your hometown mentioning how you use `usereport`. My work address is\n\n```\nLukas Pustina\nCenterDevice GmbH\nRheinwerkallee 3\n53227 Bonn\nGermany\n```\n\n## Contributing\n\nI'll be happy about suggestions and pull requests.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukaspustina%2Fusereport-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukaspustina%2Fusereport-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukaspustina%2Fusereport-rs/lists"}