I’ll use examples below to illustrate. For all the examples I’ll assume that we start at 00:00.  A 90 second interval results in an extra data point being inserted into the 5 minute bucked every 3rd interval as shown below:

:00       :05       :10       :15       :20       :25       :30       :35

|         |         |         |         |         |         |         |  ...

*  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | ...

90s      360s     630s     900s ...

From the above example, you can see every 15 minutes you have an extra sample in the bucket. So if we re-organise your sample data into buckets it will look like this:

A: 000 010 0000 00i (i = incomplete bucket)

B: 000 100 0000 00i

C: 001 000 0000 00i

D: 000 100 1000 00i

E: 001 001 0000 00i

F: 001 000 1000 00i

G: 001 000 0100 00i

So our map onto availability will be as follows (D = down, U = up, N = not enough data/incomplete):

A: D U D N

B: D U D N

C: U D D N

D: D U U N

E: U U D N

F: U D U N

G: U D U N

Just to note on the “incomplete” buckets, there IS actually data, so if that data is never written the 0s still make it down. Only if the entire bucket has no data, does it show no data. To illustrate consider the following:

H: 001 000 01i0 00i 1ii iiii i00

H: U   D   U    D   U   N    D

Now let’s look at how the aggregation works. It is calculated at the end of each hour. Here is a data sample to work with:

I: 001 110 0110 111 1ii 0000 100 111 0011 000 011 1111

I: U   U   U    U   U   D    U

U = 10D = 2

Availability is calculated as 10/12 = 83.3%.

Now let’s look at the same example, but with missing data.

J: 001 110 0110 111 iii 0000 100 111 0011 000 011 1111J: U   U   U    U   N   D    U   U   U    D   U   U

U = 9

D = 2

Availability is calculated as 9/11 = 81.8%. Also just to note we mention that 8.3% of the data is unknown to us due to being missing. You can use these values to mathematically calculate availability including or excluding the missing data by just normalising the denominator:

A / (100 + N) = Availability where N means “down”

A / (100 + N) + N = Availability where N means “up”

So using our example:

J: U   U   U    U   N   D    U   U   U    D   U   U

If we replace N with D we use the first formula:

81.8 / (100 + 8.3) = 75% available (9/12).

If we replace N with U we use the second formula:

81.8 / (100 + 8.3) + 8.3 = 88.3% available (10/12).