{"id":23061717,"url":"https://github.com/3pillarlabs/hailstorm-sdk","last_synced_at":"2025-08-15T08:32:52.543Z","repository":{"id":24176749,"uuid":"100448683","full_name":"3pillarlabs/hailstorm-sdk","owner":"3pillarlabs","description":"Distribute Apache JMeter tests with Amazon EC2 instances or data-center machines, optionally collect application infrastructure metrics and generate editable reports.","archived":false,"fork":false,"pushed_at":"2023-03-09T18:11:33.000Z","size":7140,"stargazers_count":4,"open_issues_count":32,"forks_count":2,"subscribers_count":9,"default_branch":"develop","last_synced_at":"2024-04-14T13:52:12.139Z","etag":null,"topics":["aws","cli","jmeter","nmon","reports"],"latest_commit_sha":null,"homepage":"https://3pillarlabs.github.io/hailstorm-sdk/","language":"Ruby","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/3pillarlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-16T04:48:11.000Z","updated_at":"2024-04-14T13:52:12.140Z","dependencies_parsed_at":"2023-02-16T14:31:28.333Z","dependency_job_id":null,"html_url":"https://github.com/3pillarlabs/hailstorm-sdk","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3pillarlabs%2Fhailstorm-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3pillarlabs%2Fhailstorm-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3pillarlabs%2Fhailstorm-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3pillarlabs%2Fhailstorm-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3pillarlabs","download_url":"https://codeload.github.com/3pillarlabs/hailstorm-sdk/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229901840,"owners_count":18141781,"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":["aws","cli","jmeter","nmon","reports"],"created_at":"2024-12-16T03:18:21.412Z","updated_at":"2024-12-16T03:18:21.931Z","avatar_url":"https://github.com/3pillarlabs.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hailstorm SDK\n\n[![Build Status](https://travis-ci.org/3pillarlabs/hailstorm-sdk.svg?branch=develop)](https://travis-ci.org/3pillarlabs/hailstorm-sdk)\n[![Maintainability](https://api.codeclimate.com/v1/badges/f6dc4763071d01bcd14e/maintainability)](https://codeclimate.com/github/3pillarlabs/hailstorm-sdk/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/f6dc4763071d01bcd14e/test_coverage)](https://codeclimate.com/github/3pillarlabs/hailstorm-sdk/test_coverage)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/3pillarlabs/hailstorm-sdk/blob/develop/CODE_OF_CONDUCT.md)\n\nA cloud-aware library and applications for distributed load testing using JMeter and support for server monitoring.\n\nHailstorm uses JMeter to generate load on the system under test. You create your JMeter test\nplans/scripts using JMeter GUI interface. Hailstorm uses these test plans to generate load. Hailstorm uses Amazon EC2\nto create load agents. Each load agent is pre-installed with JMeter. The application executes your test plans in\nnon-GUI mode using these load agents. Hailstorm can also work with containers or virtual machines or physical machines\nin your data center. Hailstorm can monitor server side resources, though at the moment, the server side monitoring is\nlimited to UNIX hosts with [nmon](http://nmon.sourceforge.net/pmwiki.php).\n\n## Installing Hailstorm\n\n### Software Prerequisites\n\n- [Docker](https://www.docker.com/get-started)\n- [Docker Compose](https://docs.docker.com/compose/)\n\n### Setup\n\n#### :tada: Download the [latest  Hailstorm release](https://github.com/3pillarlabs/hailstorm-sdk/releases/latest).\n\nEvery release consists of three files:\n\n- hailstorm-web/docker-compose.yml\n- hailstorm-cli/docker-compose.yml\n- hailstorm-cli/Makefile\n\nThe release is a tar+gz file. Unpack to any directory on your filesystem.\n\n## Web Interface\n\nThis is the recommended approach for most users.\n\nTo start the web interface:\n```bash\n$ cd /path/to/unpacked/release\n$ cd hailstorm-web\n$ docker-compose up\n```\n\nThis starts downloading the containers, and starting them one by one. This should complete within a minute. You will get\noutput similar to this towards the end.\n```text\nhailstorm-api_1    | The signal INFO is in use by the JVM and will not work correctly on this platform\nhailstorm-api_1    | Puma starting in single mode...\nhailstorm-api_1    | * Version 4.3.3 (jruby 9.1.17.0 - ruby 2.3.3), codename: Mysterious Traveller\nhailstorm-api_1    | * Min threads: 0, max threads: 16\nhailstorm-api_1    | * Environment: development\nhailstorm-api_1    | * Listening on tcp://0.0.0.0:8080\nhailstorm-api_1    | Use Ctrl-C to stop\nweb_1              | 2020/04/04 17:03:23 Received 200 from http://hailstorm-api:8080\nweb_1              | 2020-04-04 17:03:23: (server.c.1521) server started (lighttpd/1.4.54)\n```\n\nThe *Received 200 from http://...* message indicates that the system is available.\n\n**Open browser to [http://localhost:8080](http://localhost:8080)**\n\nYou should see a wizard to create a new project.\n\n![Hailstorm New Project Wizard](https://3pillar-hailstorm-public.s3.amazonaws.com/screen-shots/Hailstorm-Web-5.0.0-New-Project-Wizard-800x600.png)\n\nTo bring down the container setup, exit with CTRL+C if ``docker-compose`` is running in foreground. If you daemonized it, or\nwant to clean up completely, execute: ``docker-compose down``.\n\n### Daemonized Mode\n\nTo start the web interface as a daemon:\n```bash\n$ docker-compose up -d\n```\n\nIt takes up to sixty seconds for the system to initialize completely. If you get a connection reset message in the browser, wait for a few seconds and refresh the browser. While you are waiting, you can see the logs with ``docker-compose logs -f``.\n\n## CLI Interface\n\nThe CLI is meant for advanced users who need low level customization and/or server monitoring.\n\n### Additional Prerequisite\n\n- ``make`` - Available on most Linux distributions and MacOSX. For Windows, try installing with\n  [Chocolatey](https://chocolatey.org/): ``choco install make``.\n\n### Running the CLI\n\n```bash\n$ cd /path/to/unpacked/release\n$ cd hailstorm-cli\n$ docker-compose up -d\n$ make\n```\n\nThe CLI will wait for the docker containers to be available. It should take less than a minute. When the CLI starts, it shows a prompt:\n\n```bash\nhailstorm@ab7ecdeac102:/hailstorm$\n```\n\nThe current directory on the host is mapped to ``/hailstorm`` in the container. Any files saved to this location in the container will persist across container restarts.\n\n#### Create a CLI project\n\n```bash\nhailstorm@ab7ecdeac102:/hailstorm$ hailstorm shopping_cart\n```\n\nTruncated output...\n```text\n    wrote shopping_cart/config/environment.rb\n    wrote shopping_cart/config/database.properties\n    wrote shopping_cart/config/progressive.rb\n    wrote shopping_cart/config/boot.rb\n\nDone!\n```\n\n#### Start the CLI\n\n```bash\nhailstorm@ab7ecdeac102:/hailstorm$ cd shopping_cart\nhailstorm@ab7ecdeac102:/hailstorm/shopping_cart$ ./script/hailstorm\n```\n\n```text\nWelcome to the Hailstorm (version 5.0.0) shell.\nType help to get started...\nhs \u003e _\n```\n\nTo bring down the containers, exit the CLI container, and execute on the host: ``docker-compose down``.\n\n## License\n\nThe source code is distributed under the [MIT License](https://opensource.org/licenses/MIT).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/3pillarlabs/hailstorm-sdk/. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/3pillarlabs/hailstorm-sdk/blob/develop/CODE_OF_CONDUCT.md).\n\n## Code of Conduct\n\nEveryone interacting in the Hailstorm project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/3pillarlabs/hailstorm-sdk/blob/develop/CODE_OF_CONDUCT.md).\n\n## About this project\n\nCopyright (c) 2012 3Pillar Global\n\n**Hailstorm** is developed, and maintained by open source volunteers at [3Pillar Global](https://www.3pillarglobal.com/). Hailstorm is not an official 3Pillar Global product (experimental or otherwise), but 3Pillar Global owns the code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3pillarlabs%2Fhailstorm-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3pillarlabs%2Fhailstorm-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3pillarlabs%2Fhailstorm-sdk/lists"}