Usage data count start/finish problems
The metric issues_with_health_status
and 22 metrics totally have an implementation issue, with the start/finish
arguments which only affect the exported SQL generated and not the usage ping.
Description of the problem
The method count
, expects the optional, 2nd parameter, namely a column
and some keyword arguments as optional.
def count(relation, column = nil, batch: true, batch_size: nil, start: nil, finish: nil)
issues_with_health_status: count(::Issue.with_health_status, start: issue_minimum_id, finish: issue_maximum_id),
The following usage data metrics have an implementation issue.
List of affected metrics
56: :deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}") FROM "deployments"
57: :successful_deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}")
59: :failed_deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}") FROM
130: :issues: SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM "issues"
141: :issues_created_from_alerts: SELECT (SELECT COUNT("issues"."{:start=>1, :finish=>1048}")
143: = "issues"."id") + (SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM "issues"
145: = "issues"."id") + (SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM "issues"
148: :issues_created_gitlab_alerts: SELECT COUNT("issues"."{:start=>1, :finish=>1048}")
151: :issues_created_manually_from_alerts: SELECT COUNT("issues"."{:start=>1, :finish=>1048}")
154: :incident_issues: SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM "issues"
156: :alert_bot_incident_issues: SELECT COUNT("issues"."{:start=>1, :finish=>1048}")
158: :incident_labeled_issues: SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM
1028: :issues_with_health_status: SELECT COUNT("issues"."{:start=>1, :finish=>1048}")
1035: :merged_merge_requests_using_approval_rules: SELECT COUNT("merge_requests"."{:start=>1,
1047: :status_page_issues: SELECT COUNT("issues"."{:start=>1, :finish=>1048}") FROM "issues"
1093: :deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}") FROM "deployments"
1096: :successful_deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}")
1099: :failed_deployments: SELECT COUNT("deployments"."{:start=>1, :finish=>54}") FROM
1362: :users_created: SELECT COUNT("users"."{:start=>1, :finish=>332}") FROM "users"
1456: :operations_dashboard_default_dashboard: SELECT COUNT("users"."{:start=>1, :finish=>332}")
1821: :users_created: SELECT COUNT("users"."{:start=>1, :finish=>332}") FROM "users"
1953: :operations_dashboard_default_dashboard: SELECT COUNT("users"."{:start=>1, :finish=>332}")
Root cause
UsageDataQueries#count method doesn't catch the keyword arguments properly for ruby 2.7
class UsageDataQueries < UsageData
class << self
def count(relation, column = nil, *rest)
raw_sql(relation, column)
end