July 18th, 2018
(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: firstname.lastname@example.org
The index is a table of the current state of all services tracked by Riemann. Each event is uniquely indexed by its host and service. The index just keeps track of the most recent event for a given (host, service) pair.
Streams run quickly and retain as little state as possible. The index is Riemann’s state table; its picture of the world. The dashboard, network clients, and streams can all query the index to see what the system looks like now. The Dashboard is just an HTML view of the index.
Events entered into the index have a :ttl field which indicate how long that event is valid for. Events that sit in the index for longer than their TTL are removed from the index and reinserted into the event streams with state “expired”. Instead of polling for failure, just let events expire. Services which fail to check in regularly can be handled by the same state-transition streams you use for error handling.