Plugins ======= The service supports the system of plugins. Plugins must be written in the Python programming language. Plugin types ------------ There are two sorts of plugins: * On event plugin. The plugin is triggered when an event occurs. The plugin should implement a callback function. This function is called on each event of the corresponding type. The set of event types is defined by the service developers. Supported event types: +---------------------+------------------------------------------------------------------------------+ | event type | description | +=====================+==============================================================================+ | monitoring_event | Event contains monitoring points for sending to a custom monitoring system | +---------------------+------------------------------------------------------------------------------+ This plugin demonstrates the sending of a request monitoring data to another service. All monitoring plugins must implement the *BaseRequestMonitoringPlugin* abstract class. * Background plugin. This sort of plugin is intended for background work. The background plugin can implement: * custom route * background monitoring of service resources * collaboration of an event plugin and a background plugin (batching monitoring points) * connection to other data sources (Redis, RabbitMQ) and their data processing This plugin demonstrates background work and implements a route. All background plugins must implement the *BaseRequestMonitoringPlugin* abstract class. Enable plugin ------------- If the user implements a plugin, the file with the plugin should be added to the *luna_lambda/plugins* directory of the service. The plugin filename should be added to the *LUNA_LAMBDA_ACTIVE_PLUGINS* configuration setting.