Home

Awesome

punxsutawney

An tool that allows for replaying load over and over and over (and over) again.

It uses Mesos/Marathon for running its HTTP clients. It uses Kafka to read traffic data.

Primary components are:

Running

In order to run the tool following steps should be executed:

  1. Build via ./gradlew jar
  2. Start ./punxsutawney.sh
  3. Verify app is running via Mesos & Marathon UIs
  4. Start emitting traffic to Kafka topic punxsutawney (see SampleEmitter)
  5. Monitor stdout (via Mesos UI) of each HttpClient to see rps, failures, etc

Note: if running N HttpClient instances, Kafka topic should contain at least N partitions, in order for HttpClients to be able to consume concurrently.

Traffic generation

HttpClient consumes Kafka messages, containing serialized Requests instances. Each Requests instance is designed to carry a batch of HTTP requests. Emitter should batch 1k - 10k requests together to populate Requests object.