summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-02-08 15:12:33 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-02-08 15:12:33 +0000
commit6225d57e55eaa0205e939e7ed6577636b0ee47cf (patch)
treebe54b280f0631a1e9c8e767c675e610c65925b2e /lib
parentdcc096f21918399d7061372c0a22b9a5408a00a5 (diff)
downloadgitlab-ce-6225d57e55eaa0205e939e7ed6577636b0ee47cf.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/api/helpers.rb2
-rw-r--r--lib/api/usage_data_non_sql_metrics.rb2
-rw-r--r--lib/api/usage_data_queries.rb2
-rw-r--r--lib/gitlab/http.rb2
-rw-r--r--lib/gitlab/usage/service_ping_report.rb22
-rw-r--r--lib/gitlab/utils.rb7
-rw-r--r--lib/tasks/gitlab/usage_data.rake6
7 files changed, 32 insertions, 11 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 44ed19b561d..184fe7868a5 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -117,6 +117,8 @@ module API
# rubocop: disable CodeReuse/ActiveRecord
def find_project(id)
+ return unless id
+
projects = Project.without_deleted
if id.is_a?(Integer) || id =~ /^\d+$/
diff --git a/lib/api/usage_data_non_sql_metrics.rb b/lib/api/usage_data_non_sql_metrics.rb
index df1144ee7d3..983038e0263 100644
--- a/lib/api/usage_data_non_sql_metrics.rb
+++ b/lib/api/usage_data_non_sql_metrics.rb
@@ -18,7 +18,7 @@ module API
get 'non_sql_metrics' do
Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/325534')
- data = Gitlab::UsageDataNonSqlMetrics.data
+ data = Gitlab::Usage::ServicePingReport.for(output: :non_sql_metrics_values)
present data
end
diff --git a/lib/api/usage_data_queries.rb b/lib/api/usage_data_queries.rb
index c252c3a27c8..3432e71eb28 100644
--- a/lib/api/usage_data_queries.rb
+++ b/lib/api/usage_data_queries.rb
@@ -18,7 +18,7 @@ module API
get 'queries' do
Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/325534')
- queries = Gitlab::UsageDataQueries.data
+ queries = Gitlab::Usage::ServicePingReport.for(output: :metrics_queries)
present queries
end
diff --git a/lib/gitlab/http.rb b/lib/gitlab/http.rb
index b52c87e2259..7bb16e071b0 100644
--- a/lib/gitlab/http.rb
+++ b/lib/gitlab/http.rb
@@ -25,7 +25,7 @@ module Gitlab
read_timeout: 20,
write_timeout: 30
}.freeze
- DEFAULT_READ_TOTAL_TIMEOUT = 20.seconds
+ DEFAULT_READ_TOTAL_TIMEOUT = 30.seconds
include HTTParty # rubocop:disable Gitlab/HTTParty
diff --git a/lib/gitlab/usage/service_ping_report.rb b/lib/gitlab/usage/service_ping_report.rb
index 6cc1ee90559..d9e30c46498 100644
--- a/lib/gitlab/usage/service_ping_report.rb
+++ b/lib/gitlab/usage/service_ping_report.rb
@@ -4,20 +4,32 @@ module Gitlab
module Usage
class ServicePingReport
class << self
- def for(mode:, cached: false)
- case mode.to_sym
- when :values
- usage_data(cached)
+ def for(output:, cached: false)
+ case output.to_sym
+ when :all_metrics_values
+ all_metrics_values(cached)
+ when :metrics_queries
+ metrics_queries
+ when :non_sql_metrics_values
+ non_sql_metrics_values
end
end
private
- def usage_data(cached)
+ def all_metrics_values(cached)
Rails.cache.fetch('usage_data', force: !cached, expires_in: 2.weeks) do
Gitlab::UsageData.data
end
end
+
+ def metrics_queries
+ Gitlab::UsageDataQueries.data
+ end
+
+ def non_sql_metrics_values
+ Gitlab::UsageDataNonSqlMetrics.data
+ end
end
end
end
diff --git a/lib/gitlab/utils.rb b/lib/gitlab/utils.rb
index 96cff024371..608545baf74 100644
--- a/lib/gitlab/utils.rb
+++ b/lib/gitlab/utils.rb
@@ -203,6 +203,13 @@ module Gitlab
rescue Addressable::URI::InvalidURIError, TypeError
end
+ def add_url_parameters(url, params)
+ uri = parse_url(url.to_s)
+ uri.query_values = uri.query_values.to_h.merge(params.to_h.stringify_keys)
+ uri.query_values = nil if uri.query_values.empty?
+ uri.to_s
+ end
+
def removes_sensitive_data_from_url(uri_string)
uri = parse_url(uri_string)
diff --git a/lib/tasks/gitlab/usage_data.rake b/lib/tasks/gitlab/usage_data.rake
index 597773c3928..9f064ef4c0c 100644
--- a/lib/tasks/gitlab/usage_data.rake
+++ b/lib/tasks/gitlab/usage_data.rake
@@ -4,17 +4,17 @@ namespace :gitlab do
namespace :usage_data do
desc 'GitLab | UsageData | Generate raw SQLs for usage ping in YAML'
task dump_sql_in_yaml: :environment do
- puts Gitlab::UsageDataQueries.data.to_yaml
+ puts Gitlab::Usage::ServicePingReport.for(output: :metrics_queries).to_yaml
end
desc 'GitLab | UsageData | Generate raw SQLs for usage ping in JSON'
task dump_sql_in_json: :environment do
- puts Gitlab::Json.pretty_generate(Gitlab::UsageDataQueries.data)
+ puts Gitlab::Json.pretty_generate(Gitlab::Usage::ServicePingReport.for(output: :metrics_queries))
end
desc 'GitLab | UsageData | Generate usage ping in JSON'
task generate: :environment do
- puts Gitlab::Json.pretty_generate(Gitlab::Usage::ServicePingReport.for(mode: :values))
+ puts Gitlab::Json.pretty_generate(Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values))
end
desc 'GitLab | UsageData | Generate usage ping and send it to Versions Application'