Precision in Traffic Orchestration.
The timeline
The application's planned execution timeline is a series of monotonically increasing timestamps that are calculated based on the frequency of the request type, as specified in the configuration file. These timestamps are then associated with tasks, which represent individual HTTP requests. Sequentially, these tasks are pushed to a queue (FIFO) in Go. The main orchestrator, known as the coil, consumes the queue and owns the timer. It continuously checks the timestamps on the tasks and executes the corresponding HTTP requests when the elapsed time matches the specified timestamp.
As a result of this approach, the application generates traffic that is consistently leveled at a pre-defined rate. This consistency is maintained even if the responsiveness of the tested system changes, thanks to Go's concurrency features. Additionally, this constant traffic level facilitates the identification of capacity bottlenecks within the system.
Ramp-up
The ramp-up functionality is designed to gradually increase the injected traffic over a specified period. This helps warm up the system before transitioning to constant load. The ramp-up period is calculated based on the integral of the sinusoidal curve, ensuring a smooth and controlled increase in traffic intensity. The ramp-up ensures that the system can handle the increasing workload and prevents any sudden spikes that could cause performance issues.