Restrict cycle analytics usage data to instances that use postgres only
This commit is contained in:
parent
41bb23ae1d
commit
3f31da9c69
5 changed files with 9 additions and 10 deletions
|
@ -7,13 +7,8 @@ class CycleAnalytics
|
||||||
end
|
end
|
||||||
|
|
||||||
def all_medians_per_stage
|
def all_medians_per_stage
|
||||||
medians_per_stage = {}
|
STAGES.each_with_object({}) do |stage_name, hsh|
|
||||||
|
hsh[stage_name] = self[stage_name].median
|
||||||
# We only need this data for Postgres instances
|
|
||||||
return medians_per_stage if Gitlab::Database.mysql?
|
|
||||||
|
|
||||||
STAGES.each do |stage_name|
|
|
||||||
medians_per_stage[stage_name] = self[stage_name].median
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -8,14 +8,14 @@ module Gitlab
|
||||||
private
|
private
|
||||||
|
|
||||||
def base_query
|
def base_query
|
||||||
@base_query ||= stage_query([@project.id])
|
@base_query ||= stage_query([@project.id]) # rubocop:disable Gitlab/ModuleWithInstanceVariables
|
||||||
end
|
end
|
||||||
|
|
||||||
def stage_query(project_ids)
|
def stage_query(project_ids)
|
||||||
query = mr_closing_issues_table.join(issue_table).on(issue_table[:id].eq(mr_closing_issues_table[:issue_id]))
|
query = mr_closing_issues_table.join(issue_table).on(issue_table[:id].eq(mr_closing_issues_table[:issue_id]))
|
||||||
.join(issue_metrics_table).on(issue_table[:id].eq(issue_metrics_table[:issue_id]))
|
.join(issue_metrics_table).on(issue_table[:id].eq(issue_metrics_table[:issue_id]))
|
||||||
.project(issue_table[:project_id].as("project_id"))
|
.project(issue_table[:project_id].as("project_id"))
|
||||||
.where(issue_table[:project_id].in(project_ids)) # rubocop:disable Gitlab/ModuleWithInstanceVariables
|
.where(issue_table[:project_id].in(project_ids))
|
||||||
.where(issue_table[:created_at].gteq(@options[:from])) # rubocop:disable Gitlab/ModuleWithInstanceVariables
|
.where(issue_table[:created_at].gteq(@options[:from])) # rubocop:disable Gitlab/ModuleWithInstanceVariables
|
||||||
|
|
||||||
# Load merge_requests
|
# Load merge_requests
|
||||||
|
|
|
@ -73,6 +73,9 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def cycle_analytics_usage_data
|
def cycle_analytics_usage_data
|
||||||
|
# We only want to generate this data for instances that use PostgreSQL
|
||||||
|
return {} if Gitlab::Database.mysql?
|
||||||
|
|
||||||
projects = Project.sorted_by_activity.limit(Gitlab::CycleAnalytics::UsageData::PROJECTS_LIMIT)
|
projects = Project.sorted_by_activity.limit(Gitlab::CycleAnalytics::UsageData::PROJECTS_LIMIT)
|
||||||
|
|
||||||
Gitlab::CycleAnalytics::UsageData.new(projects, { from: 7.days.ago }).to_json
|
Gitlab::CycleAnalytics::UsageData.new(projects, { from: 7.days.ago }).to_json
|
||||||
|
|
|
@ -36,6 +36,7 @@ describe Gitlab::UsageData do
|
||||||
gitlab_shared_runners
|
gitlab_shared_runners
|
||||||
git
|
git
|
||||||
database
|
database
|
||||||
|
avg_cycle_analytics
|
||||||
))
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ module CycleAnalyticsHelpers
|
||||||
end
|
end
|
||||||
|
|
||||||
median_time_difference = time_differences.sort[2]
|
median_time_difference = time_differences.sort[2]
|
||||||
expect(subject[phase].median).to be_within(5).of(median_time_difference)
|
expect(subject[phase].median.presence).to be_within(5).of(median_time_difference)
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when the data belongs to another project" do
|
context "when the data belongs to another project" do
|
||||||
|
|
Loading…
Reference in a new issue