Plugins
Lightbus ships with two plugins, both of which are disabled by default.
State Plugin¶
Every Lightbus worker process which has the state plugin enabled will report it's state 
to the bus. This state information is available as the following events on the 
internal.state API.
This plugin should add minimal load to the bus and may be useful in developing tooling around the bus.
Events¶
worker_started¶
Parameters: process_name, metrics_enabled, api_names, listening_for, timestamp, ping_interval
Fired when the worker starts up.
worker_ping¶
Parameters: process_name, metrics_enabled, api_names, listening_for, timestamp, ping_interval
Fires every 60 seconds after worker startup. This indicates that the worker is still alive and has not died unexpectedly. This interval is configurable (see below).
worker_stopped¶
Parameters: process_name, timestamp
Fires when a worker shuts down cleanly.
Configuration¶
The following configuration options are available:
enabled (bool)¶
Default: False
Should the plugin be enabled?
ping_enabled (bool)¶
Default: True
Should ping messages be sent?
ping_enabled (int, seconds)¶
Default: 60
How often (in seconds) should a ping event be sent. A lower interval means more frequent messages, but reduces the time it takes any listeners to discover dead workers.
Example configuration¶
bus:
  ...
apis:
  ...
plugins:
  internal_state:
    enabled: true
    ping_enabled: true
    ping_interval: 60
Metrics Plugin¶
The metrics plugin sends metric events for every event & RPC processes. It therefore has a much bigger impact on performance than the state plugin, but also provides much more detailed information.
Events¶
The following events will be fired on the internal.metrics API:
| Event | Parameters | 
|---|---|
| rpc_call_sent | process_name,id,api_name,procedure_name,kwargs,timestamp | 
| rpc_call_received | process_name,id,api_name,procedure_name,timestamp | 
| rpc_response_sent | process_name,id,api_name,procedure_name,result,timestamp | 
| rpc_response_received | process_name,id,api_name,procedure_name,timestamp | 
| event_fired | process_name,event_id,api_name,event_name,kwargs,timestamp | 
| event_received | process_name,event_id,api_name,event_name,kwargs,timestamp | 
| event_processed | process_name,event_id,api_name,event_name,kwargs,timestamp | 
Configuration¶
The metrics plugin only includes the enabled configuration option. Configuration should therefore be:
bus:
  ...
apis:
  ...
plugins:
  internal_metrics:
    enabled: true