chaperon v0.3.1 API Reference

Modules

Chaperon is a HTTP service load & performance testing tool.

HTTP API handler used for remote control of chaperon cluster. Allows scheduling new load tests, aborting currently running or scheduled ones as well as listing all currently running and scheduled load tests.

HTTP API option parser behaviour that can be implemented to customize, extend and modify any incoming web request options to be used when scheduling new load tests. Is expected to return a load test configuration to be run and used by Chaperon.Master.schedule_load_test/1.

Default option parser that uses the given test and options values to be used as the load test module to run with the given runtime options.

Helper functions to be used with Chaperon.Actionable.

Implementation module for asynchronous actions (function calls into a Chaperon.Scenario module).

Performs & measures a function call (with args) within a session's Chaperon.Scenario module.

HTTP based actions to be run in a Chaperon.Scenario module for a given Chaperon.Session.

Action that executes a given Chaperon.Actionable repeatedly for a given duration.

Action that runs a Chaperon.Scenario module from the current session.

Action that calls a function with a given rate over a given interval of time (ms).

Helper functions for creating WebSocket actions.

Implements Chaperon's WebSocket client (behavior of WebSockex WS library).

WebSocket client process state.

WebSocket connection action that can be run to close the WebSocket connection with the given options.

WebSocket connection action that needs to be run in order for a Chaperon.Session to be successfully connected to a web server via WebSocket.

WebSocket action to receive message in a WebSocket-connected session.

WebSocket action to send a message in a WebSocket-connected session. Includes an optional list of options to be sent along to Socket.Web.send/3.

Protocol implemented by all valid measurable actions that can be performed in a Chaperon.Session. All Actions implementing this protocol are found within the Chaperon.Action module.

CSV metrics export module.

InfluxDB metric export module.

JSON metrics export module.

CSV metrics export module.

Metrics exporter behaviour. Implemented by all built-in exporter modules (see Chaperon.Export.*)

Implementation & helper module for defining load tests. A load test defines a list of scenarios and their config to run them with.

LoadTest results struct.

Master process for running load tests. Initiates running a load test and awaits results from a run. Needs to be started before used. The Chaperon.Master process is started only once per cluster and registered globally as Chaperon.Master.

Supervisor for the globally registered Chaperon.Master load test runner process.

Helper module to be used by scenario definition modules.

This module calculates histogram data for a session's metrics. It uses the Histogrex library to calculate the histograms.

Implements Chaperon.Scenario and runs a configured list of scenarios in sequence, passing along any session assignments as config values to the next scenario in the list. Makes it easy to define a new scenario as a pipeline of a list of existing scenarios.

Defines a Session struct and corresponding helper functions that are used within Chaperon.Scenario definitions. Most of Chaperon's logic is centered around these sessions.

Chaperon.Session log helper macros.

Root supervisor for all Chaperon processes & supervisors.

Timing related helper functions and type definitions used within Chaperon.

Helper functions used throughout Chaperon's codebase.

Wraps supervised Tasks running Chaperon.Scenario sessions that run on any of the nodes in the cluster.

Chaperon worker process supervisor. Each Chaperon.Scenario is executed with a Chaperon.Session inside a Chaperon.WorkerTask process supervised by this supervisor.

Exceptions