UI: IOPs count frequently displays 0 incorrectly
When selecting the most recent IOPs value, the UI code takes the last time interval in the graphite data, and uses it, or 0 if it is null.
The last value is actually null pretty often, because the intervals provided correspond to the time period requested (i.e. up to now), including a null for the end of the requested time period if that interval hasn't seen a sample yet.
Due to aliasing, you may also see a null in the data every once in a while, e.g. if we're sampling every 60 seconds and also polling every 60 seconds, every once in a while our poll might take 60.1 seconds and we'll get a 60 second period with no data.
Anyway, the upshot is that when getting the "latest value" from a series of graphite datapoint, the algorithm to use is: * Latest value if it's not null * Else if the latest-but-one is not null, use that * Else if the latest-but-two is not null, use that * Else the data in unavailable (display zero or better yet something to indicate absent data like "-").
I'm still intending that we should have some fast "latest value" cache in the future to supply unambiguous latest values so that API clients don't have to scrape them from the time series, but for the moment the front end is the right place to fix this.
This is fairly high severity, because that large IOPs number is so prominent.