How to use Lightbus for metrics¶
When we talk about metrics we may mean all or any of the following:
- Current information is most important
- Previous events will become irrelevant as soon as new data is received
- Lost events are therefore tolerable, as long as we keep up with new events
- Events may be high volume, so optimisations may be needed
Note
Your needs may not precisely match this scenario, so be prepared to tweak the following configuration to your needs.
For the above metrics-based scenario, a sample Lightbus configuration may look like something like this:
# Lightbus config for metrics
bus:
schema:
transport:
redis:
url: "redis://redis_host:6379/0"
apis:
# Here we specify the default for your entire bus, but you could
# also specify the config for a specific API by using the API's name
# instead of 'default'.
default:
# Disable validation to enhance performance
validate:
outgoing: false
incoming: false
# Assume we will be transmitting simple types, so we can bypass casting for performance
cast_values: false
event_transport:
redis:
url: 'redis://redis_host:6379/0'
# Load in many events at once for performance improvements
batch_size: 100
# No need to keep many historical events around
max_stream_length: 10000
# Per-event streams, to allow selective consumption of metrics
stream_use: "per_event"