{"id":21931273,"url":"https://github.com/vpominchuk/wmetrics","last_synced_at":"2025-10-09T18:30:55.877Z","repository":{"id":200430589,"uuid":"705426397","full_name":"vpominchuk/wmetrics","owner":"vpominchuk","description":"Web Metrics - a CLI tool to perform performance tests for your web services.","archived":false,"fork":false,"pushed_at":"2023-12-18T02:58:02.000Z","size":74,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T06:36:49.165Z","etag":null,"topics":["go","golang","http","https","load-test","load-testing","performance-analysis","performance-metrics","performance-monitoring","performance-testing","ssl"],"latest_commit_sha":null,"homepage":"","language":"Go","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/vpominchuk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"MIT-LICENSE.txt","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":"2023-10-16T01:19:16.000Z","updated_at":"2025-01-08T07:49:42.000Z","dependencies_parsed_at":"2023-10-17T00:19:21.880Z","dependency_job_id":"418aa4c4-ed5a-449d-bf02-a0c2bea12440","html_url":"https://github.com/vpominchuk/wmetrics","commit_stats":null,"previous_names":["vpominchuk/wmetrics"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/vpominchuk/wmetrics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpominchuk%2Fwmetrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpominchuk%2Fwmetrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpominchuk%2Fwmetrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpominchuk%2Fwmetrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vpominchuk","download_url":"https://codeload.github.com/vpominchuk/wmetrics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpominchuk%2Fwmetrics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001947,"owners_count":26083226,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["go","golang","http","https","load-test","load-testing","performance-analysis","performance-metrics","performance-monitoring","performance-testing","ssl"],"created_at":"2024-11-28T23:13:20.978Z","updated_at":"2025-10-09T18:30:54.052Z","avatar_url":"https://github.com/vpominchuk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web Metrics\n\n`wmetrics` is a versatile command-line tool written in Go for benchmarking and monitoring web servers. It allows you to simulate various HTTP requests, measure server performance, and collect valuable metrics. Whether you need to stress test your web application, analyze response times, or monitor your server's behavior, wmetrics is a handy tool to have in your toolkit.\n\n## Features\n\n- Send HTTP requests to a specified URL.\n- Support for GET and POST requests with customizable data and content type.\n- Control the number of concurrent requests to emulate real-world scenarios.\n- Resolve IPv4 or IPv6 addresses as per your needs.\n- Utilize client PEM certificates for secure connections.\n- Support for proxy servers (HTTP, HTTPS, and SOCKS5).\n- Fine-tune SSL and TLS settings.\n- Specify custom User Agent or choose from predefined templates.\n- Output data in multiple formats, including standard output, plain text, and JSON.\n\n## Installation\n\nTo install `wmetrics`, you need to have Go installed on your system. Then, run the following command:\n\n```bash\ngit clone https://github.com/vpominchuk/wmetrics\ncd wmetrics\ngo install\n./build\n```\n\n## Pre-built Binaries\nYou can download pre-built binaries for Linux, macOS, and Windows from the [Releases](https://github.com/vpominchuk/wmetrics/releases) page.\n\n\n## Build\nTo build the project for different platforms and architectures please follow our [Build Guidelines](docs/BUILD.md).\n\n## Usage\n```bash\nwmetrics [options] URL_LIST\n```\n\n## Options\n| Option                  | Description                                                                                                                                     |\n|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| -4                      | Resolve IPv4 addresses only (default true).                                                                                                     |\n| -6                      | Resolve IPv6 addresses only.                                                                                                                    |\n| -C file                 | Client PEM certificate file.                                                                                                                    |\n| -F string               | Form data.                                                                                                                                      |\n| -H header               | Custom header. For example: \"Accept-Encoding: gzip, deflate\". Multiple headers can be provided with multiple -H flags.                          |\n| -O format               | Output format (std, text, json) (default \"std\").                                                                                                |\n| -P URL                  | Use a proxy (complete URL or \"host[:port]\"). Supported schemes: \"http,\" \"https,\" and \"socks5.\"                                                  |\n| -T string               | Content type (default \"application/json\").                                                                                                      |\n| -c requests             | Number of concurrent requests (default 1).                                                                                                      |\n| -d string               | Post data as a string.                                                                                                                          |\n| -e code                 | Exit with error on HTTP code. Multiple code can be provided with multiple -e flags.                                                             |\n| -f file                 | Post data from a file.                                                                                                                          |\n| -i                      | Allow insecure SSL connections.                                                                                                                 |\n| -k                      | Use HTTP KeepAlive feature.                                                                                                                     |\n| -l file                 | URL list file                                                                                                                                   |\n| -km connections         | Max idle connections (default 100).                                                                                                             |\n| -kt timeout             | Max idle connections timeout in ms (default 1m30s).                                                                                             |\n| -m method               | HTTP method (default \"GET\").                                                                                                                    |\n| -n requests             | Number of requests to perform (default 1).                                                                                                      |\n| -s Milliseconds         | Maximum wait time for each response (default 30s).                                                                                              |\n| -t time                 | Time limit (1s, 200ms, ...). If the time limit is reached, wmetrics will interrupt the test and print the results.                              |\n| -tt timeout             | TLS handshake timeout in ms (default 10s).                                                                                                      |\n| -u User Agent           | User Agent (default \"wmetrics/v0.0.1\").                                                                                                         |\n| -ut User Agent Template | Use User Agent Template. Allowed values (chrome, firefox, edge)[-(linux, mac, android, iphone, ipod, ipad)]. Use -ut list to see all templates. |\n\n\n## Examples\n\n### Send a GET request to a URL\n```bash\nwmetrics https://example.com\n```\n\n### Send a POST request to a URL\n```bash\nwmetrics -m POST -d '{\"name\":\"John Doe\"}' https://example.com\n```\n\n### Send a POST request with form data\n```bash\nwmetrics -m POST -F \"first_name=John\u0026last_name=Doe\" https://example.com\n```\n\n### Send a POST request with data from a file\n```bash\nwmetrics -m POST -f data.json https://example.com\n```\n\n### Send a POST request with a client certificate\n```bash\nwmetrics -m POST -C client.pem -d '{\"name\":\"John Doe\"}' https://example.com\n```\n\n### Send requests with custom User Agent and output as JSON\n```bash\nwmetrics -u \"MyUserAgent\" -O json https://example.com\n```\n\n### Send requests with a predefined User Agent template\n```bash\nwmetrics -ut chrome-linux https://example.com\n```\n\n### Stress test a server with multiple concurrent connections\n```bash\nwmetrics -c 100 -n 1000 https://example.com\n```\n\nFor more options and detailed usage, please refer to the program's help documentation.\n\n## License\nThis project is licensed under the [MIT License](MIT-LICENSE.txt).\n\n## Contributing\nContributions are welcome! If you would like to contribute to this project, please follow our [Contributing Guidelines](docs/CONTRIBUTING.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvpominchuk%2Fwmetrics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvpominchuk%2Fwmetrics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvpominchuk%2Fwmetrics/lists"}