Rally Plugins¶
Rally Plugin Reference¶
Rally has a plugin oriented architecture - in other words Rally team is trying to make all places of code pluggable. Such architecture leds to the big amount of plugins. Rally Plugins Reference page contains a full list with detailed descriptions of all official Rally plugins.
How plugins work¶
Rally provides an opportunity to create and use a custom benchmark scenario, runner, SLA, deployment or context as a plugin:

Placement¶
Plugins can be quickly written and used, with no need to contribute them to the actual Rally code. Just place a python module with your plugin class into the /opt/rally/plugins or ~/.rally/plugins directory (or its subdirectories), and it will be autoloaded. Additional paths can be specified with the --plugin-paths argument, or with the RALLY_PLUGIN_PATHS environment variable, both of which accept comma-delimited lists. Both --plugin-paths and RALLY_PLUGIN_PATHS can list either plugin module files, or directories containing plugins. For instance, both of these are valid:
rally --plugin-paths /rally/plugins ...
rally --plugin-paths /rally/plugins/foo.py,/rally/plugins/bar.py ...
You can also use a script unpack_plugins_samples.sh from samples/plugins which will automatically create the ~/.rally/plugins directory.
How to create a plugin¶
To create your own plugin you need to inherit your plugin class from plugin.Plugin class or its subclasses. Also you need to decorate your class with rally.task.scenario.configure
from rally.task import scenario
@scenario.configure(name="my_new_plugin_name")
class MyNewPlugin(plugin.Plugin):
pass