Add in Time To First Byte (TTFB) threshold for tests
This has grown organically out of work for #142 (closed). To get more information from k6
in the Web tests it was discovered that we can show more info by adding in a new threshold against one of the http metrics and tags.
Additionally with this work I was learning how best to handle multiple URL calls in one test. Through both of these as well as thinking about it separately for some time I was considering adding a new threshold to the tests based on response time.
Currently the tests measure achieved RPS as their main threshold. This was selected back in the beginning as it was a smoother metric to measure and less prone to network noise. Nonetheless response time is still considered one of the main metrics to measure in performance testing and while RPS is also a good threshold it's a higher level of metric and can subsequently miss things.
Adding response time to the tool isn't straightforward though as it's much more sensitive to network conditions and can lead to false positives. After some consideration one answer to this is Time To First Byte (TTFB). This metric measures the time it takes for the server to first respond only and ignores everything else. This is ultimately what we're looking to test here - how long GitLab takes to respond under load and not other network conditions.
After some experimentation and looking at what will likely be our official performance target (200ms - 500ms) a TTFB of 500ms for the 90th percentile looks to be the sweet spot where it has enough buffer to handle network differences but still alert correct when there's genuine failures. Task is to add this in and update the reporting and documentation accordingly.