{"id":26863850,"url":"https://github.com/naganathan05/load-pulse","last_synced_at":"2026-05-06T13:34:21.410Z","repository":{"id":284753923,"uuid":"952571304","full_name":"Naganathan05/Load-Pulse","owner":"Naganathan05","description":"Load Testing tool built in Go which works based on Raft Algorithm.","archived":false,"fork":false,"pushed_at":"2025-03-27T13:23:30.000Z","size":4217,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T14:27:54.151Z","etag":null,"topics":["docker","go","load-testing","rabbitmq","raft-consensus-algorithm","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Naganathan05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-03-21T13:59:24.000Z","updated_at":"2025-03-27T13:23:34.000Z","dependencies_parsed_at":"2025-03-27T14:39:51.379Z","dependency_job_id":null,"html_url":"https://github.com/Naganathan05/Load-Pulse","commit_stats":null,"previous_names":["naganathan05/load-pulse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naganathan05%2FLoad-Pulse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naganathan05%2FLoad-Pulse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naganathan05%2FLoad-Pulse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naganathan05%2FLoad-Pulse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Naganathan05","download_url":"https://codeload.github.com/Naganathan05/Load-Pulse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246413363,"owners_count":20773052,"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":["docker","go","load-testing","rabbitmq","raft-consensus-algorithm","redis"],"created_at":"2025-03-31T03:33:00.005Z","updated_at":"2026-05-06T13:34:21.398Z","avatar_url":"https://github.com/Naganathan05.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Load-Pulse\nLoad testing tool built in Go which works based on the Raft consensus algorithm. Designed for scalable and distributed benchmarking using Dockerized microservices.\n\n## High-Level Architecture Diagram\n![image](https://github.com/user-attachments/assets/9643db11-e4df-48b2-b642-666e5168ff8f)\n\n---\n\n## 🚀 Setup Guide\n\n### 🔧 Prerequisites\nBefore using Load Pulse, ensure the following tools are installed:\n- **[Docker](https://www.docker.com/get-started)** – Containerization engine\n- **[Git](https://git-scm.com/)** – Version control system\n\n---\n\n### 1. Clone the Repository\n```sh\ngit clone https://github.com/Naganathan05/Load-Pulse.git\ncd Load-Pulse\n```\n\n---\n\n### 2. Modify `bench.json`\n- Edit the `bench.json` file to configure the load test parameters and target server.\n- If the target server runs on **localhost**, set the host like this:\n```json\n\"host\": \"http://host.docker.internal:\u003cport_number\u003e/\"\n```\n\u003e This allows containers to reach your local server properly.\n\n---\n\n### 3. Start Docker Desktop\nEnsure Docker Desktop is up and running, as the `docker-compose` command depends on the Docker daemon.\n\n---\n\n### 4. Start the Load Test\nStart the tool using:\n```sh\ngo run .\\main.go run\n```\nThis command spins up all required microservice containers (load tester, aggregator, Redis, RabbitMQ) and initiates the benchmarking process.\n\n---\n\n### 5. View Load Testing Results\n- Once the test completes, results will be logged by the aggregator container.\n- The following metrics are recorded and printed:\n  - **Average Response Time**\n  - **Max Response Time**\n  - **Min Response Time**\n  - **Total Requests Sent**\n  - **Successful vs Failed Requests**\n\n---\n\n## 🛠 Troubleshooting\n\n- **Containers fail to start?**\n  - Run `docker ps -a` to check logs and exit codes.\n\n- **Unable to reach localhost APIs?**\n  - Always use `host.docker.internal:\u003cport_number\u003e` inside container configs.\n\n---\n\n## Maintainer\n`Naganathan M R` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaganathan05%2Fload-pulse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaganathan05%2Fload-pulse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaganathan05%2Fload-pulse/lists"}