https://github.com/naganathan05/load-pulse
Load Testing tool built in Go which works based on Raft Algorithm.
https://github.com/naganathan05/load-pulse
docker go load-testing rabbitmq raft-consensus-algorithm redis
Last synced: 26 days ago
JSON representation
Load Testing tool built in Go which works based on Raft Algorithm.
- Host: GitHub
- URL: https://github.com/naganathan05/load-pulse
- Owner: Naganathan05
- Created: 2025-03-21T13:59:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-27T13:23:30.000Z (about 1 year ago)
- Last Synced: 2025-03-27T14:27:54.151Z (about 1 year ago)
- Topics: docker, go, load-testing, rabbitmq, raft-consensus-algorithm, redis
- Language: Go
- Homepage:
- Size: 4.02 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Load-Pulse
Load testing tool built in Go which works based on the Raft consensus algorithm. Designed for scalable and distributed benchmarking using Dockerized microservices.
## High-Level Architecture Diagram

---
## 🚀 Setup Guide
### 🔧 Prerequisites
Before using Load Pulse, ensure the following tools are installed:
- **[Docker](https://www.docker.com/get-started)** – Containerization engine
- **[Git](https://git-scm.com/)** – Version control system
---
### 1. Clone the Repository
```sh
git clone https://github.com/Naganathan05/Load-Pulse.git
cd Load-Pulse
```
---
### 2. Modify `bench.json`
- Edit the `bench.json` file to configure the load test parameters and target server.
- If the target server runs on **localhost**, set the host like this:
```json
"host": "http://host.docker.internal:/"
```
> This allows containers to reach your local server properly.
---
### 3. Start Docker Desktop
Ensure Docker Desktop is up and running, as the `docker-compose` command depends on the Docker daemon.
---
### 4. Start the Load Test
Start the tool using:
```sh
go run .\main.go run
```
This command spins up all required microservice containers (load tester, aggregator, Redis, RabbitMQ) and initiates the benchmarking process.
---
### 5. View Load Testing Results
- Once the test completes, results will be logged by the aggregator container.
- The following metrics are recorded and printed:
- **Average Response Time**
- **Max Response Time**
- **Min Response Time**
- **Total Requests Sent**
- **Successful vs Failed Requests**
---
## 🛠Troubleshooting
- **Containers fail to start?**
- Run `docker ps -a` to check logs and exit codes.
- **Unable to reach localhost APIs?**
- Always use `host.docker.internal:` inside container configs.
---
## Maintainer
`Naganathan M R`