The hour looked calm. It hid a 30-second outage.
transcript
Your year-long graph shows a calm hour. Nothing happened. Except a 30-second outage. The graph swallowed it.
First, why that graph is summarised. A point every 10 seconds is about 3 million a year. Per series. Hourly rollups? 8,760. That's how a year-long query answers in seconds.
Raw points keep their 10-second detail for 7 days. Then a background job downsamples old blocks. 1-minute rollups, kept 30 days. Then 1-hour rollups, kept a year. The year-long dashboard reads those.
But here's the catch. What does one hourly point actually keep? Keep only the average, and the hour flattens.
Average only? A 30-second outage melts into a calm-looking hour. So every rollup keeps four numbers. Min, max, sum and count. Sum and count give a correct average. And max keeps the spike an average would hide.
Add percentiles from histograms, and spikes stay visible a year later. Summarise old data. But never keep only the average. Keep the max.
Full breakdown in the lecture.