Trustify PR perf tests
Test runs
5
2026-10-07 → 2026-10-24
Latest avg response
20.3 ms (-9.9)
Latest 95%ile
65 ms (-8)
Latest throughput
480.0 req/s (+158.1)
Latest failure rate
0.0%
0 of 287,449 requests
Endpoints tested
72
72 across all runs
Trends
Response time
Per run, ms · click a point to open that run
Throughput
Requests per second, per run
Failure rate
Failed requests, % of all requests
Latest run vs previous
Comparing pr_2791_2026-10-24T15-15-01_8ecf3d8 with pr_2791_2026-10-24T14-10-19_24a70e7. Flagged when 95%ile up or down by at least 10% and 5 ms.
Regressions 3
| Endpoint | Prev 95%ile | Latest 95%ile | Δ ms | Δ % | Prev avg | Latest avg | Fails |
|---|---|---|---|---|---|---|---|
| GET /api/v3/purl/base/{purl} | 230 | 270 | (+40) | +17% | 82.5 | 78.7 | 0 → 0 |
| GET /api/v3/advisory?total=true | 180 | 200 | (+20) | +11% | 108 | 108 | 0 → 0 |
| GET /api/v3/advisory?offset=100&limit=10&total=true | 100 | 110 | (+10) | +10% | 81.3 | 56.1 | 0 → 0 |
Improvements 32
| Endpoint | Prev 95%ile | Latest 95%ile | Δ ms | Δ % | Prev avg | Latest avg | Fails |
|---|---|---|---|---|---|---|---|
| GET /api/v3/purl?q=purl:namespace=redhat&total=true | 1,600 | 64 | (-1,536) | -96% | 169 | 118 | 0 → 0 |
| GET /api/v3/vulnerability?q=base_severity=high&total=true | 280 | 68 | (-212) | -76% | 48.7 | 27.0 | 0 → 0 |
| GET /api/v3/vulnerability?q=cwes=CWE-79&total=true | 280 | 68 | (-212) | -76% | 49.0 | 28.0 | 0 → 0 |
| GET /api/v3/purl?q=purl:ty=rpm&total=true | 1,800 | 580 | (-1,220) | -68% | 165 | 133 | 0 → 0 |
| GET /api/v3/purl/base?sort=name:asc&total=true | 330 | 110 | (-220) | -67% | 203 | 61.2 | 0 → 0 |
| GET /api/v3/purl?sort=purl:name:asc&total=true | 410 | 160 | (-250) | -61% | 55.4 | 40.5 | 0 → 0 |
| GET /api/v3/purl?q=curl&total=true | 760 | 400 | (-360) | -47% | 84.3 | 87.3 | 0 → 0 |
| GET /api/v3/advisory?q=CVE-2021-&total=true | 1,800 | 1,200 | (-600) | -33% | 392 | 282 | 0 → 0 |
| GET /api/v3/sbom/by-package?purl={purl} | 210 | 140 | (-70) | -33% | 102 | 86.4 | 0 → 0 |
| GET /api/v3/advisory-labels?filter_text=type&limit=1000 | 6,600 | 4,600 | (-2,000) | -30% | 5,823 | 3,932 | 0 → 0 |
| GET /api/v3/sbom?q=published>2024-01-01&total=true | 600 | 420 | (-180) | -30% | 205 | 155 | 0 → 0 |
| POST /api/v3/purl/recommend | 1,500 | 1,100 | (-400) | -27% | 885 | 724 | 0 → 0 |
| GET /api/v3/sbom/{sbom_id}/download | 3,100 | 2,400 | (-700) | -23% | 3,023 | 2,281 | 0 → 0 |
| GET /api/v3/purl?total=true | 72 | 58 | (-14) | -19% | 40.8 | 19.6 | 0 → 0 |
| POST /api/v3/vulnerability/analyze | 3,200 | 2,600 | (-600) | -19% | 936 | 644 | 0 → 0 |
| GET /api/v3/sbom?offset=100&limit=10&total=true | 510 | 420 | (-90) | -18% | 206 | 171 | 0 → 0 |
| GET /api/v3/sbom?total=true | 490 | 410 | (-80) | -16% | 179 | 138 | 0 → 0 |
| GET /api/v3/vulnerability?sort=base_score:desc&total=true | 1,300 | 1,100 | (-200) | -15% | 600 | 490 | 0 → 0 |
| GET /api/v3/vulnerability?total=true | 73 | 62 | (-11) | -15% | 32.2 | 16.3 | 0 → 0 |
| GET /api/v3/importer?total=true | 67 | 58 | (-9) | -13% | 11.1 | 6.71 | 0 → 0 |
| GET /api/v3/advisory?deprecated=Consider&total=true | 90 | 78 | (-12) | -13% | 70.7 | 50.2 | 0 → 0 |
| GET /api/v3/license?q=ASL&sort=license:desc&total=true | 76 | 66 | (-10) | -13% | 30.8 | 23.4 | 0 → 0 |
| GET /api/v3/sbom/{sbom_id}/all-license-ids | 78 | 68 | (-10) | -13% | 23.8 | 16.0 | 0 → 0 |
| GET /api/v3/license?q=license~GPL&total=true | 71 | 62 | (-9) | -13% | 26.3 | 20.4 | 0 → 0 |
| GET /api/v3/license?q=license~Apache&total=true | 73 | 64 | (-9) | -12% | 27.5 | 20.9 | 0 → 0 |
| GET /api/v3/analysis/component/{component} | 70 | 62 | (-8) | -11% | 14.0 | 8.09 | 0 → 0 |
| GET /api/v3/analysis/status | 70 | 62 | (-8) | -11% | 13.4 | 8.07 | 0 → 0 |
| GET /api/v3/analysis/latest/component/{cpe} | 71 | 63 | (-8) | -11% | 14.5 | 8.17 | 0 → 0 |
| GET /api/v3/license?limit=10&sort=license:asc&total=true | 82 | 73 | (-9) | -11% | 36.2 | 27.4 | 0 → 0 |
| GET /api/v3/advisory?q=title~openssl&total=true | 92 | 82 | (-10) | -11% | 44.6 | 33.6 | 0 → 0 |
| GET /api/v3/advisory?sort=modified:desc&total=true | 86 | 77 | (-9) | -10% | 70.0 | 47.1 | 0 → 0 |
| GET /api/v3/group/sbom?parents=resolve&total=true | 68 | 61 | (-7) | -10% | 12.4 | 7.73 | 0 → 0 |
Top 10 slowest endpoints (latest run)
| # | Method | Name | 95%ile (ms) | Average (ms) | # Requests |
|---|---|---|---|---|---|
| 1 | GET | /api/v3/advisory-labels?filter_text=type&limit=1000 | 4,600 | 3,932 | 142 |
| 2 | POST | /api/v3/vulnerability/analyze | 2,600 | 644 | 586 |
| 3 | GET | /api/v3/sbom/{sbom_id}/download | 2,400 | 2,281 | 134 |
| 4 | GET | /api/v3/sbom?q=name~redhat&total=true | 1,300 | 569 | 112 |
| 5 | GET | /api/v3/advisory?q=CVE-2021-&total=true | 1,200 | 282 | 754 |
| 6 | POST | /api/v3/purl/recommend | 1,100 | 724 | 577 |
| 7 | GET | /api/v3/vulnerability?sort=base_score:desc&total=true | 1,100 | 490 | 337 |
| 8 | GET | /api/v3/sbom?sort=ingested:desc&total=true | 630 | 226 | 136 |
| 9 | GET | /api/v3/advisory?offset={offset}&limit=1 | 580 | 245 | 125 |
| 10 | GET | /api/v3/purl?q=purl:ty=rpm&total=true | 580 | 133 | 175 |
All endpoints
| Group | Endpoint | Runs | Latest 95%ile | Median 95%ile | Best | Worst | Latest avg | Latest fail % | 95%ile, last 30 runs |
|---|---|---|---|---|---|---|---|---|---|
| sbom | GET /api/v3/sbom/by-package?purl={purl} | 5 | 140 | 190 | 140 | 210 | 86.4 | 0% | |
| sbom | GET /api/v3/sbom/count-by-package | 5 | 74 | 77 | 61 | 78 | 25.6 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id} | 5 | 210 | 220 | 210 | 230 | 108 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id}/all-license-ids | 5 | 68 | 72 | 39 | 78 | 16.0 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id}/download | 5 | 2,400 | 3,200 | 2,400 | 5,600 | 2,281 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id}/license-export | 5 | 82 | 79 | 59 | 82 | 29.0 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id}/packages | 5 | 290 | 310 | 260 | 390 | 120 | 0% | |
| sbom | GET /api/v3/sbom/{sbom_id}/related | 5 | 270 | 290 | 270 | 300 | 120 | 0% | |
| sbom | GET /api/v3/sbom?limit=10&sort=name:asc&total=true | 5 | 510 | 570 | 490 | 830 | 249 | 0% | |
| sbom | GET /api/v3/sbom?offset=100&limit=10&total=true | 5 | 420 | 510 | 420 | 550 | 171 | 0% | |
| sbom | GET /api/v3/sbom?q=label:type=product&total=true | 5 | 64 | 70 | 40 | 75 | 17.4 | 0% | |
| sbom | GET /api/v3/sbom?q=license~GPL&sort=name:desc&total=true | 5 | 70 | 75 | 48 | 77 | 20.2 | 0% | |
| sbom | GET /api/v3/sbom?q=name~redhat&total=true | 5 | 1,300 | 1,300 | 940 | 1,400 | 569 | 0% | |
| sbom | GET /api/v3/sbom?q=published>2024-01-01&total=true | 5 | 420 | 500 | 420 | 600 | 155 | 0% | |
| sbom | GET /api/v3/sbom?sort=ingested:desc&total=true | 5 | 630 | 630 | 530 | 880 | 226 | 0% | |
| sbom | GET /api/v3/sbom?total=true | 5 | 410 | 410 | 390 | 490 | 138 | 0% | |
| advisory | GET /api/v3/advisory/urn:uuid:{advisory_id} | 5 | 100 | 110 | 74 | 110 | 52.8 | 0% | |
| advisory | GET /api/v3/advisory/urn:uuid:{advisory_id}/download | 5 | 72 | 75 | 53 | 78 | 20.9 | 0% | |
| advisory | GET /api/v3/advisory?deprecated=Consider&total=true | 5 | 78 | 90 | 78 | 100 | 50.2 | 0% | |
| advisory | GET /api/v3/advisory?limit=1&total=true | 5 | 110 | 110 | 75 | 110 | 74.7 | 0% | |
| advisory | GET /api/v3/advisory?limit=10&sort=ingested:desc&total=true | 5 | 76 | 79 | 68 | 83 | 50.0 | 0% | |
| advisory | GET /api/v3/advisory?offset=100&limit=10&total=true | 5 | 110 | 100 | 99 | 110 | 56.1 | 0% | |
| advisory | GET /api/v3/advisory?offset={offset}&limit=1 | 5 | 580 | 600 | 500 | 610 | 245 | 0% | |
| advisory | GET /api/v3/advisory?q=CVE-2021-&total=true | 5 | 1,200 | 1,800 | 1,200 | 2,200 | 282 | 0% | |
| advisory | GET /api/v3/advisory?q=identifier=CVE-2022-0981&total=true | 5 | 110 | 110 | 73 | 110 | 55.5 | 0% | |
| advisory | GET /api/v3/advisory?q=modified>3 days ago&total=true | 5 | 68 | 71 | 40 | 71 | 17.5 | 0% | |
| advisory | GET /api/v3/advisory?q=title~openssl&total=true | 5 | 82 | 92 | 82 | 120 | 33.6 | 0% | |
| advisory | GET /api/v3/advisory?sort=modified:desc&total=true | 5 | 77 | 86 | 77 | 91 | 47.1 | 0% | |
| advisory | GET /api/v3/advisory?total=true | 5 | 200 | 180 | 170 | 200 | 108 | 0% | |
| vulnerability | GET /api/v3/vulnerability?offset=100&limit=10&total=true | 5 | 100 | 100 | 72 | 110 | 60.7 | 0% | |
| vulnerability | GET /api/v3/vulnerability?q=base_score>=7.0&total=true | 5 | 70 | 78 | 70 | 120 | 32.3 | 0% | |
| vulnerability | GET /api/v3/vulnerability?q=base_severity=high&total=true | 5 | 68 | 91 | 68 | 280 | 27.0 | 0% | |
| vulnerability | GET /api/v3/vulnerability?q=cwes=CWE-79&total=true | 5 | 68 | 86 | 68 | 280 | 28.0 | 0% | |
| vulnerability | GET /api/v3/vulnerability?sort=base_score:desc&total=true | 5 | 1,100 | 1,100 | 1,000 | 1,400 | 490 | 0% | |
| vulnerability | GET /api/v3/vulnerability?total=true | 5 | 62 | 69 | 33 | 73 | 16.3 | 0% | |
| vulnerability | POST /api/v3/vulnerability/analyze | 5 | 2,600 | 3,100 | 2,600 | 3,400 | 644 | 0% | |
| purl | GET /api/v3/purl/base/{purl} | 5 | 270 | 270 | 82 | 300 | 78.7 | 0% | |
| purl | GET /api/v3/purl/base?q=namespace=redhat&total=true | 5 | 100 | 100 | 76 | 130 | 67.5 | 0% | |
| purl | GET /api/v3/purl/base?q=type=rpm&total=true | 5 | 100 | 100 | 74 | 110 | 54.1 | 0% | |
| purl | GET /api/v3/purl/base?sort=name:asc&total=true | 5 | 110 | 320 | 110 | 380 | 61.2 | 0% | |
| purl | GET /api/v3/purl/base?total=true | 5 | 100 | 100 | 73 | 110 | 54.9 | 0% | |
| purl | GET /api/v3/purl/{purl_id} | 5 | 170 | 170 | 170 | 210 | 68.8 | 0% | |
| purl | GET /api/v3/purl?offset=100&limit=10&total=true | 5 | 100 | 110 | 70 | 120 | 62.9 | 0% | |
| purl | GET /api/v3/purl?q=curl&total=true | 5 | 400 | 690 | 84 | 890 | 87.3 | 0% | |
| purl | GET /api/v3/purl?q=license~GPLv3+...&sort=name:desc&total=true | 5 | 72 | 71 | 63 | 75 | 24.8 | 0% | |
| purl | GET /api/v3/purl?q=name=curl&total=true | 5 | 80 | 80 | 35 | 140 | 24.5 | 0% | |
| purl | GET /api/v3/purl?q=purl:namespace=redhat&total=true | 5 | 64 | 1,600 | 52 | 2,000 | 118 | 0% | |
| purl | GET /api/v3/purl?q=purl:ty=rpm&total=true | 5 | 580 | 1,800 | 38 | 2,500 | 133 | 0% | |
| purl | GET /api/v3/purl?sort=purl:name:asc&total=true | 5 | 160 | 160 | 37 | 410 | 40.5 | 0% | |
| purl | GET /api/v3/purl?total=true | 5 | 58 | 63 | 35 | 72 | 19.6 | 0% | |
| purl | POST /api/v3/purl/recommend | 5 | 1,100 | 1,400 | 460 | 1,500 | 724 | 0% | |
| license | GET /api/v3/license/spdx/license/{license_id} | 5 | 44 | 45 | 44 | 57 | 41.6 | 0% | |
| license | GET /api/v3/license/spdx/license?q=apache&total=true | 5 | 4 | 6 | 4 | 10 | 2.07 | 0% | |
| license | GET /api/v3/license/spdx/license?q=gpl&total=true | 5 | 44 | 46 | 44 | 56 | 41.4 | 0% | |
| license | GET /api/v3/license/spdx/license?total=true | 5 | 44 | 45 | 44 | 54 | 41.2 | 0% | |
| license | GET /api/v3/license?limit=10&sort=license:asc&total=true | 5 | 73 | 81 | 73 | 82 | 27.4 | 0% | |
| license | GET /api/v3/license?q=ASL&sort=license:desc&total=true | 5 | 66 | 76 | 58 | 77 | 23.4 | 0% | |
| license | GET /api/v3/license?q=license~Apache&total=true | 5 | 64 | 71 | 43 | 73 | 20.9 | 0% | |
| license | GET /api/v3/license?q=license~GPL&total=true | 5 | 62 | 71 | 42 | 73 | 20.4 | 0% | |
| license | GET /api/v3/license?total=true | 5 | 110 | 120 | 110 | 120 | 65.2 | 0% | |
| analysis | GET /api/v3/analysis/component/{component} | 5 | 62 | 68 | 26 | 70 | 8.09 | 0% | |
| analysis | GET /api/v3/analysis/latest/component/{cpe} | 5 | 63 | 68 | 26 | 71 | 8.17 | 0% | |
| analysis | GET /api/v3/analysis/status | 5 | 62 | 68 | 26 | 70 | 8.07 | 0% | |
| importer | GET /api/v3/importer?total=true | 5 | 58 | 65 | 16 | 67 | 6.71 | 0% | |
| group | GET /api/v3/group/sbom?parents=resolve&total=true | 5 | 61 | 68 | 25 | 68 | 7.73 | 0% | |
| group | GET /api/v3/group/sbom?total=true | 5 | 62 | 68 | 26 | 68 | 7.93 | 0% | |
| group | GET /api/v3/group/sbom?totals=true&total=true | 5 | 62 | 68 | 25 | 68 | 7.97 | 0% | |
| labels | GET /api/v3/advisory-labels?filter_text=type&limit=1000 | 5 | 4,600 | 6,700 | 4,600 | 8,600 | 3,932 | 0% | |
| labels | GET /api/v3/sbom-labels?limit=10&filter_text=&total=true | 5 | 110 | 110 | 100 | 120 | 61.4 | 0% | |
| labels | GET /api/v3/sbom-labels?total=true | 5 | 110 | 120 | 89 | 120 | 63.5 | 0% | |
| other | GET /.well-known/trustify | 5 | 44 | 45 | 6 | 45 | 41.3 | 0% | |
| other | POST /api/v3/ui/extract-sbom-purls | 5 | 4 | 6 | 4 | 8 | 1.83 | 0% |
Runs
| Started (UTC) | Run | Source | Duration | Users | # Requests | Fail % | RPS | Average (ms) | 95%ile | 99%ile |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-24 16:02 | pr_2791_2026-10-24T15-15-01_8ecf3d8 | PR #2791 | 9m 58s | 10 | 287,449 | 0.0% | 480.0 (+158.1) | 20.3 (-9.9) | 65 (-8) | 130 (-80) |
| 2026-10-24 15:00 | pr_2791_2026-10-24T14-10-19_24a70e7 | PR #2791 | 9m 58s | 10 | 192,916 | 0.0% | 321.9 (-0.9) | 30.2 (+0.1) | 73 (+1) | 210 (+10) |
| 2026-10-23 20:57 | pr_2791_2026-10-23T20-07-36_949b76d | PR #2791 | 9m 58s | 10 | 193,371 | 0.0% | 322.8 (-12.0) | 30.1 (+1.1) | 72 (+1) | 200 (0) |
| 2026-10-23 18:29 | pr_2791_2026-10-23T17-39-02_42725dd | PR #2791 | 9m 59s | 10 | 200,640 | 0.0% | 334.8 (-270.0) | 29.1 (+13.7) | 71 (+33) | 200 (+80) |
| 2026-10-07 16:17 | pr_2745_2026-10-07T15-05-31_0db05dc | PR #2745 | 9m 59s | 10 | 362,681 | 0.0% | 604.8 | 15.4 | 38 | 120 |