Skip to content

qu1queee/go-dora

Repository files navigation

Dora the Explorer

Endpoints

  1. GET / Hello Dora
  2. GET /id The id of the instance
  3. POST /session Sets up the cookies for a sticky session
  4. POST /stress_testers?cpu=1&io=1 Starts the stress tester with 1 cpu and 1 io process
  5. GET /stress_testers Gets all the stress testers processes
  6. DELETE /stress_testers Kill all the stress testers processes
  7. GET /find/:filename Finds a file in your instance
  8. GET /sigterm Displays all possible sigterms
  9. GET /delay/:seconds Waits for n seconds
  10. GET /sigterm/:signal Sends the specfied signal
  11. GET /logspew/:bytes Spews out n bytes to the logs
  12. GET /loglines/:linecount Writes n lines to stdout, each line contains a timestamp with nanoseconds
  13. GET /loglines/:linecount/:tag Writes n lines to stdout, each line contains a timestamp with nanoseconds and the given tag
  14. GET /log/sleep/count Returns a count of the log messages logged by the log service
  15. GET /log/sleep/running Returns whether the log service is running
  16. GET /log/sleep/:logspeed/limit/:limit Produces logspeed output with the given parameters
  17. GET /log/sleep/:logspeed Produces logspeed output without limit
  18. GET /log/stop Stops the log service
  19. GET /log/bytesize/:bytesize Produces continuous log entries of the given bytesize
  20. GET /echo/:destination/:output Echos out the output to the destination
  21. GET /env/:name Prints out the environment variable :name
  22. GET /env Prints out the entire environment as a serialized Ruby hash
  23. GET /env.json Prints out the entire environment as a JSON object
  24. GET /largetext/:kbytes Returns a dummy response of size :kbytes. For testing large payloads.
  25. GET /health Returns 500 the first 3 times you call it, "I'm alive" thereafter
  26. GET /ping/:address Pings the given address 4 times
  27. GET /lsb_release Returns information about the Linux distribution of the container
  28. GET /dpkg/:package Returns the output of dpkg -l for the given packange
  29. GET /myip Returns the IP of the app container
  30. GET /curl/:host/?:port? cURLs the given host and port and returns the stdout, stderr, and status as JSON

Sticky Sessions

There is a helper script in this directory: get_instance_cookie_jars.sh

  • specify number of expected instances with -e #
  • specify maximum number of tries with -m #

The script will create cookie jars in the current directory, using the filename pattern cookie_jar_<instance_id>.cjar

To direct a curl request to a particular instance, specify -b <cookie_jar_file> on the curl command line.

Or, to set up a sticky session manually:

  1. Get your sticky session by running:
curl -d '' dora.yourdomain.com/session -c instance_1
  1. Run with a different filename for each instance, and repeat the curl command until you get a new ID
curl -d '' dora.yourdomain.com/session -c instance_2
  1. Then you can target whatever instance you want for example:
curl dora.yourdomain.com/stress_testers -b instance_2

Releases

No releases published

Packages

No packages published