stealthly / punxsutawney

An Apache Mesos Framework that allows for replaying load over and over and over (and over) again

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  • CLI - CLI to start HttpClients on Mesos (see Main);
  • HttpClient - client running on Mesos, that generates HTTP traffic;
  • Emitter - emitter (see SampleEmitter), producing traffic to Kafka topic (consumed by HttpClient(s));

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.

About

An Apache Mesos Framework that allows for replaying load over and over and over (and over) again

License:Apache License 2.0


Languages

Language:Java 81.5%Language:Shell 12.5%Language:Ruby 6.0%