Count pipelines that have security jobs
What does this MR do?
With the upcoming removal of DinD &2462 (closed) for security products and the orchestration layer for SAST and Dependency Scanning, we will no longer have the sast
and dependency_scanning
jobs running in the pipeline, but instead will have 1 job per analyzer, with a different name.
This MR counts number of pipelines that have security jobs. I put a simplified model of the tables to represent how query works.
In example above, we have one pipeline running two dependency scanning analysers.
Related issue
Queries
SELECT MAX("ci_pipelines"."id") FROM "ci_pipelines"
https://explain.depesz.com/s/6smu
Cold cache
Time: 13.392 ms
- planning: 0.491 ms
- execution: 12.901 ms
- I/O read: 12.673 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 0 from the buffer pool
- reads: 6 (~48.00 KiB) from the OS file cache, including disk I/O
- dirtied: 1 (~8.00 KiB)
- writes: 0
Warm cache
Time: 1.148 ms
- planning: 0.434 ms
- execution: 0.714 ms
- I/O read: 0.574 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 1 (~8.00 KiB) from the buffer pool
- reads: 4 (~32.00 KiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
SELECT MIN("ci_pipelines"."id") FROM "ci_pipelines"
https://explain.depesz.com/s/fOt4
Cold cache
Time: 7.769 ms
- planning: 0.311 ms
- execution: 7.458 ms
- I/O read: 7.302 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 0 from the buffer pool
- reads: 5 (~40.00 KiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm cache
Time: 0.669 ms
- planning: 0.538 ms
- execution: 0.131 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 6 (~48.00 KiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for dependency scanning
SELECT Count(DISTINCT "ci_builds"."commit_id")
FROM "ci_builds"
INNER JOIN "security_scans"
ON "security_scans"."build_id" = "ci_builds"."id"
WHERE "ci_builds"."type" = 'Ci::Build'
AND "ci_builds"."status" = 'success'
AND ( "ci_builds"."retried" = false
OR "ci_builds"."retried" IS NULL )
AND ( security_scans.scan_type = 2 )
AND "ci_builds"."created_at" BETWEEN '2020-06-25 12:12:35.535725' AND
'2020-07-23 12:12:35.536078'
AND "ci_builds"."commit_id" BETWEEN 0 AND 9999
https://explain.depesz.com/s/nrMO
Cold cache
Time: 462.206 ms
- planning: 1.277 ms
- execution: 460.929 ms
- I/O read: 457.532 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 9 (~72.00 KiB) from the buffer pool
- reads: 232 (~1.80 MiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm cache
Time: 4.133 ms
- planning: 1.816 ms
- execution: 2.317 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 232 (~1.80 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for sast
same query as above only difference is that scan_type is = 1
https://explain.depesz.com/s/eyC
Cold cache
Time: 415.861 ms
- planning: 1.059 ms
- execution: 414.802 ms
- I/O read: 410.374 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 3 (~24.00 KiB) from the buffer pool
- reads: 232 (~1.80 MiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm cache
Time: 2.543 ms
- planning: 0.870 ms
- execution: 1.673 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 232 (~1.80 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for container scanning (scan_type = 3)
https://explain.depesz.com/s/nhFP
Cold Cache
Time: 513.824 ms
- planning: 1.335 ms
- execution: 512.489 ms
- I/O read: 509.230 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 9 (~72.00 KiB) from the buffer pool
- reads: 232 (~1.80 MiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm Cache
Time: 3.881 ms
- planning: 1.520 ms
- execution: 2.361 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 232 (~1.80 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for dast (scan_type = 4)
https://explain.depesz.com/s/iJCD
Cold Cache
Time: 413.824 ms
- planning: 1.335 ms
- execution: 412.489 ms
- I/O read: 409.230 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 9 (~72.00 KiB) from the buffer pool
- reads: 232 (~1.80 MiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm cache
Time: 2.929 ms
- planning: 1.076 ms
- execution: 1.853 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 232 (~1.80 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for secret detection (scan_type = 5)
https://explain.depesz.com/s/n833
Cold cache
Time: 414.861 ms
- planning: 1.059 ms
- execution: 413.802 ms
- I/O read: 410.374 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 3 (~24.00 KiB) from the buffer pool
- reads: 232 (~1.80 MiB) from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Warm Cache
Time: 3.105 ms
- planning: 1.051 ms
- execution: 2.054 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 232 (~1.80 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0
Counting pipelines for fuzzing (scan_type = 6)
https://explain.depesz.com/s/QSac
Cold cache
Time: 384.009 ms
- planning: 1.077 ms
- execution: 382.932 ms
- I/O read: 359.736 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 81 (~648.00 KiB) from the buffer pool
- reads: 138 (~1.10 MiB) from the OS file cache, including disk I/O
- dirtied: 20 (~160.00 KiB)
- writes: 0
Warm cache
Time: 1.864 ms
- planning: 1.152 ms
- execution: 0.712 ms
- I/O read: 0.000 ms
- I/O write: 0.000 ms
Shared buffers:
- hits: 177 (~1.40 MiB) from the buffer pool
- reads: 0 from the OS file cache, including disk I/O
- dirtied: 0
- writes: 0