Skip to content

Resolve "Update usage ping data to track MRs with added rules"

What does this MR do?

Related to #222312 (closed)

This adds a line in the usage ping for EE that shows how many MRs have had rules added that are specific to the MR. Includes a spec as well.

Queries generated (with the added index):

MIN QUERY

SELECT MIN("approval_merge_request_rules"."merge_request_id") FROM "approval_merge_request_rules"
Time: 8.136 ms
  - planning: 0.224 ms
  - execution: 7.912 ms
    - I/O read: 7.684 ms
    - I/O write: 0.000 ms

Shared buffers:
  - hits: 0 from the buffer pool
  - reads: 4 (~32.00 KiB) from the OS file cache, including disk I/O
  - dirtied: 0
  - writes: 0

MAX QUERY

SELECT MAX("approval_merge_request_rules"."merge_request_id") FROM "approval_merge_request_rules"
Time: 13.252 ms
  - planning: 0.284 ms
  - execution: 12.968 ms
    - I/O read: 12.193 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: 1 (~8.00 KiB)
  - writes: 0

COUNT QUERY

SELECT COUNT(DISTINCT "approval_merge_request_rules"."merge_request_id") FROM "approval_merge_request_rules" LEFT OUTER JOIN "approval_merge_request_rule_sources" ON "approval_merge_request_rule_sources"."approval_merge_request_rule_id" = "approval_merge_request_rules"."id" WHERE "approval_merge_request_rule_sources"."approval_merge_request_rule_id" IS NULL AND "approval_merge_request_rules"."merge_request_id" BETWEEN 0 AND 9999; 
Time: 0.834 ms
  - planning: 0.719 ms
  - execution: 0.115 ms
    - I/O read: 0.000 ms
    - I/O write: 0.000 ms

Shared buffers:
  - hits: 3 (~24.00 KiB) from the buffer pool
  - reads: 0 from the OS file cache, including disk I/O
  - dirtied: 0
  - writes: 0

COUNT QUERY (with time period)

explain SELECT COUNT(DISTINCT "approval_merge_request_rules"."merge_request_id") FROM "approval_merge_request_rules" LEFT OUTER JOIN "approval_merge_request_rule_sources" ON "approval_merge_request_rule_sources"."approval_merge_request_rule_id" = "approval_merge_request_rules"."id" WHERE "approval_merge_request_rules"."created_at" BETWEEN '2020-06-17 14:39:49.471022' AND '2020-07-15 14:39:49.471225' AND "approval_merge_request_rule_sources"."approval_merge_request_rule_id" IS NULL AND "approval_merge_request_rules"."merge_request_id" BETWEEN 0 AND 9999;
Time: 0.838 ms
  - planning: 0.676 ms
  - execution: 0.162 ms
    - I/O read: 0.000 ms
    - I/O write: 0.000 ms

Shared buffers:
  - hits: 11 (~88.00 KiB) from the buffer pool
  - reads: 0 from the OS file cache, including disk I/O
  - dirtied: 0
  - writes: 0

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Related to #222312 (closed)

Edited by Mayra Cabrera

Merge request reports