Firebase trace showing wrong median time latency?

924 Views Asked by At

I am adding Firebase performance trace in my app and below image is data for last 24 Hrs

enter image description here

As you can see the Median is 647ms, where as 95% time latency is 14.81s and for 5% it is 460ms.

How can the median be 647ms, it should be near around 14 sec? Am I missing something here?

Edit -

In below image data is for last 7 days

enter image description here

As you can see in last 24 Hrs I had data where 95th percentile was 14.81s, but how can in last 7 days graph there is no mention of the 14 secs trace? all traces are below 5.95s?

Also in the distribution image latency is between 460 ms to 2.94s but as 95th percentile in first image is 14.81s and in second image it is 5.95s but distribution is only showing data between 460ms-2.94s? Then what is this distribution data showing? Shouldn't they show here all requests time delay in the last 7 days?

Also when I am checking in devices samples

enter image description here

the time delay maximum in all cases is 5.60s not 14.81s?

2

There are 2 best solutions below

7
On

95% does not mean 95% of the time, it is the 95th percentile in the value range, not to be confused with frequency.

Most (90%) of your "executions" will be between 5-95% so it makes sense that the median is 647 ms.

I don't know exactly what the 95% value represents, it could be an average of the top 5% execution times or it could be the first value in the range.

0
On

I think the behavior that you are facing is this:

You are sending this metrics (sorted):

Day 1: ..., 460ms, ..., ..., 647ms, ..., ..., 14.81s, ... 5th 50th 95th

That explains the first graph, in the next days you are sending different total number of metrics. (I set some random numbers):

Day 2: ..., 460ms, ..., ..., 647ms, ..., ..., 2.95s, ... 5th 50th 95th

Day 3: ..., 460ms, ..., ..., 647ms, ..., ..., 2.95s, ... 5th 50th 95th

Day 4: ..., 619ms, ..., ..., 971ms, ..., ..., 5.95s, ... 5th 50th 95th

Day 5: ..., 460ms, ..., ..., 647ms, ..., ..., 2.94s, ... 5th 50th 95th

Day 6: ..., 460ms, ..., ..., 647ms, ..., ..., 2.01s, ... 5th 50th 95th

That could explain second graph, and since the third graph shows a distribution across 7 days (merge all your metrics into a single array and computes the percentiles), that explains how the 95th which it should be different than most of your every day 95th (unless the metrics that you send are the same every day).

In addition I noticed that you in fact can check the 100th in the response of the network request made by the Firebase Console from your browser, (I think UI decided to don't render this value).