To verify my previous statement, I also created log sink to BigQuery.
With 12 000 rows in the table, please find the output of percentile queries below:
SELECT NTH(99, QUANTILES(httpRequest.latency, 101)) FROM [XXX:req_latency.appengine_googleapis_com_nginx_request_20180321]
0.99 latency: 0.023 seconds
SELECT NTH(999, QUANTILES(httpRequest.latency, 1001)) FROM [XXX:req_latency.appengine_googleapis_com_nginx_request_20180321]
0.999 latency: 0.141 seconds
SELECT NTH(9999, QUANTILES(httpRequest.latency, 10001)) FROM [XXX:req_latency.appengine_googleapis_com_nginx_request_20180321]
0.9999 latency: 0.715
There is definitely some big discrepancy here between what's reported by the AppEngine dashboard and actual logs latency.