Gorilla is an in-memory cache that stores time series data.
A bunch of servers run Gorilla clients. The client is a library. A team imports it and calls its functions. One function writes and another aggregates, which is a read.
Three kinds of systems query the data the clients send:
- Alarm systems. A metric went down by 50% and stayed down for the past three minutes, so an alarm is thrown.
- Root cause analysis systems. Sales went down because visits went down, and those visits came from people in the age group of 40 to 60.
- Dashboards, a more manual way of looking at the data.
The data is eventually persisted to a file store. It is long-term durable storage, much cheaper than memory and slow to query.
A time series is a key and a set of points. The key is the name of the time series, such as server usage. Each point is a timestamp and a value. The data is sharded on the key, so all its points are in the same shard.