Skip to content

Fix metrics regex in get_test_results method

Nailia Iskhakova (OOO) requested to merge fix-results-regex into main

Fixing regex for http_req_waiting and other metrics in results parsing to adjust recent update in k6 error output

After 0.43.1 if one of the thresholds failed the error message became expErr := "thresholds on metrics 'iterations{scenario:sc1}, iterations{scenario:sc2}' have been breached" which breaks the existing GPT regex.

Example error in 10k pipeline https://gitlab.com/gitlab-org/quality/performance/-/jobs/3985806541#L5522

Error
  http_req_tls_handshaking.........................................................: avg=4.81ms     min=0.00ms     med=0.00ms     max=43.13ms    p(90)=15.43ms    p(95)=39.48ms   
     http_req_waiting.................................................................: avg=1096.42ms  min=284.60ms   med=990.78ms   max=2523.43ms  p(90)=2268.25ms  p(95)=2515.80ms 
{ controller:Projects::MergeRequests::ContentController#cached_widget.json }...: avg=419.87ms   min=410.34ms   med=419.87ms   max=429.40ms   p(90)=427.49ms   p(95)=428.44ms  
{ controller:Projects::MergeRequests::ContentController#widget.json }..........: avg=301.43ms   min=284.60ms   med=301.43ms   max=318.26ms   p(90)=314.90ms   p(95)=316.58ms  
{ controller:Projects::MergeRequestsController#discussions.json }..............: avg=1802.75ms  min=990.78ms   med=1797.70ms  max=2523.43ms  p(90)=2516.75ms  p(95)=2520.09ms 
{ controller:Projects::MergeRequestsController#show.json }.....................: avg=294.31ms   min=287.72ms   med=294.31ms   max=300.89ms   p(90)=299.58ms   p(95)=300.23ms  
{ controller:Projects::MergeRequestsController#show }..........................: avg=560.71ms   min=519.72ms   med=560.71ms   max=601.70ms   p(90)=593.50ms   p(95)=597.60ms  
   ✓ http_reqs........................................................................: 17      0.693207/s
{ controller:Projects::MergeRequests::ContentController#cached_widget.json }...: 2       0.081554/s
{ controller:Projects::MergeRequests::ContentController#widget.json }..........: 2       0.081554/s
{ controller:Projects::MergeRequestsController#discussions.json }..............: 8       0.326215/s
{ controller:Projects::MergeRequestsController#show.json }.....................: 2       0.081554/s
{ controller:Projects::MergeRequestsController#show }..........................: 2       0.081554/s
     iteration_duration...............................................................: avg=8172.99ms  min=1247.63ms  med=11445.03ms max=11826.33ms p(90)=11750.07ms p(95)=11788.20ms
     iterations.......................................................................: 2       0.081554/s
   ✓ successful_requests..............................................................: 100.00% ✓ 16       ✗ 0  
     vus..............................................................................: 1       min=0      max=1
     vus_max..........................................................................: 1       min=1      max=1


running (24.5s), 0/1 VUs, 2 complete and 0 interrupted iterations
default ✓ [ 100% ] 0/1 VUs  20s
time="2023-03-23T16:18:46+01:00" level=error msg="thresholds on metrics 'http_req_waiting{controller:Projects::MergeRequestsController#discussions.json}' have been breached"

Test failed and output couldn't be parsed: 
undefined method `[]' for nil:NilClass

Validated that with changes in this MR test is reported correctly:

validation
  █ setup

     █ Web - Project Merge Request Page

     data_received....................................................................: 1.8 MB  67 kB/s
     data_sent........................................................................: 6.7 kB  252 B/s
     group_duration...................................................................: avg=12990.97ms min=12046.64ms med=12990.97ms max=13935.30ms p(90)=13746.43ms p(95)=13840.86ms
     http_req_blocked.................................................................: avg=9.92ms     min=0.00ms     med=0.00ms     max=120.19ms   p(90)=19.39ms    p(95)=62.80ms   
     http_req_connecting..............................................................: avg=2.29ms     min=0.00ms     med=0.00ms     max=26.13ms    p(90)=5.13ms     p(95)=15.48ms   
     http_req_duration................................................................: avg=1283.35ms  min=312.37ms   med=566.01ms   max=3956.22ms  p(90)=3149.91ms  p(95)=3878.72ms 
       { expected_response:true }.....................................................: avg=1283.35ms  min=312.37ms   med=566.01ms   max=3956.22ms  p(90)=3149.91ms  p(95)=3878.72ms 
     http_req_failed..................................................................: 0.00%   ✓ 0        ✗ 17 
     http_req_receiving...............................................................: avg=63.04ms    min=0.12ms     med=32.37ms    max=263.15ms   p(90)=165.61ms   p(95)=229.06ms  
     http_req_sending.................................................................: avg=0.49ms     min=0.05ms     med=0.30ms     max=1.60ms     p(90)=1.24ms     p(95)=1.37ms    
     http_req_tls_handshaking.........................................................: avg=4.63ms     min=0.00ms     med=0.00ms     max=43.58ms    p(90)=14.08ms    p(95)=36.88ms   
     http_req_waiting.................................................................: avg=1219.82ms  min=310.64ms   med=533.38ms   max=3827.04ms  p(90)=2943.59ms  p(95)=3756.53ms 
{ controller:Projects::MergeRequests::ContentController#cached_widget.json }...: avg=447.96ms   min=422.51ms   med=447.96ms   max=473.41ms   p(90)=468.32ms   p(95)=470.86ms  
{ controller:Projects::MergeRequests::ContentController#widget.json }..........: avg=431.49ms   min=383.39ms   med=431.49ms   max=479.60ms   p(90)=469.98ms   p(95)=474.79ms  
{ controller:Projects::MergeRequestsController#discussions.json }..............: avg=2082.86ms  min=1032.43ms  med=1666.30ms  max=3827.04ms  p(90)=3765.35ms  p(95)=3796.19ms 
{ controller:Projects::MergeRequestsController#show.json }.....................: avg=381.61ms   min=310.64ms   med=381.61ms   max=452.58ms   p(90)=438.39ms   p(95)=445.48ms  
{ controller:Projects::MergeRequestsController#show }..........................: avg=525.05ms   min=516.73ms   med=525.05ms   max=533.38ms   p(90)=531.71ms   p(95)=532.54ms  
   ✓ http_reqs........................................................................: 17      0.637697/s
{ controller:Projects::MergeRequests::ContentController#cached_widget.json }...: 2       0.075023/s
{ controller:Projects::MergeRequests::ContentController#widget.json }..........: 2       0.075023/s
{ controller:Projects::MergeRequestsController#discussions.json }..............: 8       0.300093/s
{ controller:Projects::MergeRequestsController#show.json }.....................: 2       0.075023/s
{ controller:Projects::MergeRequestsController#show }..........................: 2       0.075023/s
     iteration_duration...............................................................: avg=8879.77ms  min=653.61ms   med=12046.74ms max=13938.97ms p(90)=13560.53ms p(95)=13749.75ms
     iterations.......................................................................: 2       0.075023/s
   ✓ successful_requests..............................................................: 100.00% ✓ 16       ✗ 0  
     vus..............................................................................: 1       min=1      max=1
     vus_max..........................................................................: 1       min=1      max=1


running (26.7s), 0/1 VUs, 2 complete and 0 interrupted iterations
default ✓ [ 100% ] 0/1 VUs  20s
time="2023-03-23T16:47:40+01:00" level=error msg="thresholds on metrics 'http_req_waiting{controller:Projects::MergeRequestsController#discussions.json}, http_reqs{controller:Projects::MergeRequests::ContentController#cached_widget.json}, http_reqs{controller:Projects::MergeRequests::ContentController#widget.json}, http_reqs{controller:Projects::MergeRequestsController#show.json}, http_reqs{controller:Projects::MergeRequestsController#show}' have been breached"
All k6 tests have finished after 29.31s!


█ Results summary

* Environment:                Staging
* Environment Version:        15.11.0-pre `3ff3d49df96`
* Option:                     20s_2rps
* Date:                       2023-03-23
* Run Time:                   29.31s (Start: 15:47:11 UTC, End: 15:47:40 UTC)
* GPT Version:                v2.12.2

NAME                      | RPS | RPS RESULT       | TTFB AVG  | TTFB P90            | REQ STATUS     | RESULT           
--------------------------|-----|------------------|-----------|---------------------|----------------|------------------
web_project_merge_request | 1/s | 0.64/s (>0.16/s) | 1219.82ms | 2943.59ms (<1800ms) | 100.00% (>99%) | FAILED¹²

Merge request reports

Loading