This document provides an overview of Blueflood, an open source system for simple metrics processing. It describes key concepts such as metrics, locators, shards, granularity, slots, and how Blueflood ingests metrics data, condenses it through roll ups, and allows querying of metrics. The document outlines Blueflood's goals of providing fast graphs, supporting multiple tenants cheaply and maintainably, and its use of Cassandra for storage.
105. Just fewer slots as
granularities become
coarser
Slots
Monday, June 3, 13
106. 5m = 4032 slots over two weeks
Monday, June 3, 13
107. 5m = 4032 slots over two weeks
20m = 1008 slots over two weeks
Monday, June 3, 13
108. 5m = 4032 slots over two weeks
20m = 1008 slots over two weeks
1h = 336 slots over two weeks
Monday, June 3, 13
109. 5m = 4032 slots over two weeks
20m = 1008 slots over two weeks
1h = 336 slots over two weeks
4h = 84 slots over two weeks
Monday, June 3, 13
110. 5m = 4032 slots over two weeks
20m = 1008 slots over two weeks
1h = 336 slots over two weeks
4h = 84 slots over two weeks
24h = 14 slots over two weeks (duh!)
Monday, June 3, 13
129. Metrics arrive somehow
Passe through transforms
(you can augment these)
Written to the full-
resolution database
Monday, June 3, 13
130. Metrics arrive somehow
Passe through transforms
(you can augment these)
Written to the full-
resolution database
Written to the discovery
database
Monday, June 3, 13
131. Metrics arrive somehow
Passe through transforms
(you can augment these)
Written to the full-
resolution database
Written to the discovery
database
(so we know what metrics are active for a given
shard)
Monday, June 3, 13
132. Metrics arrive somehow
Passe through transforms
(you can augment these)
Written to the full-
resolution database
Written to the discovery
database
(so we know what metrics are active for a given
shard)
Shard+slot state is updated
(marked dirty, so we know what time periods
need to be rolled up)
Monday, June 3, 13
134. Ingestion is designed to
be pluggable
If you’re a coder you
can swap in other
things:
Monday, June 3, 13
135. Ingestion is designed to
be pluggable
If you’re a coder you
can swap in other
things:
Transports
Monday, June 3, 13
136. Ingestion is designed to
be pluggable
If you’re a coder you
can swap in other
things:
Transports
Transforms
Monday, June 3, 13
137. Ingestion is designed to
be pluggable
If you’re a coder you
can swap in other
things:
Transports
Transforms
Or just live with the
defaults
Monday, June 3, 13
142. roll up is scheduled when a slot has not
received data for 5 minutes
Monday, June 3, 13
143. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
Monday, June 3, 13
144. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
select out all locators updated during that slot
Monday, June 3, 13
145. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
select out all locators updated during that slot
for each locator get all datapoints during the
range of that slot
Monday, June 3, 13
146. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
select out all locators updated during that slot
for each locator get all datapoints during the
range of that slot
do maths
Monday, June 3, 13
147. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
select out all locators updated during that slot
for each locator get all datapoints during the
range of that slot
do maths
save in coarser granularity
Monday, June 3, 13
148. roll up is scheduled when a slot has not
received data for 5 minutes
(usually because time has moved beyond it)
select out all locators updated during that slot
for each locator get all datapoints during the
range of that slot
do maths
save in coarser granularity
repeat per granularity
Monday, June 3, 13