Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-09-19 18:14:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-09-19 18:14:42 +0300
commit0c9606b712220cea41dbaffaa1f19a942398b2aa (patch)
treeea69987533df6b81eaa4a166f7f96fb69b100ece /lib
parent6b95202d1c2157c2e7f5135b2cff298470fc77b1 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/api/helpers.rb4
-rw-r--r--lib/gitlab/pages.rb15
-rw-r--r--lib/gitlab/prometheus/queries/matched_metric_query.rb82
-rw-r--r--lib/gitlab/prometheus/queries/validate_query.rb21
-rw-r--r--lib/gitlab/usage/metric_definition.rb3
5 files changed, 18 insertions, 107 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 4dcca4bdbf9..e967b88e500 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -709,8 +709,8 @@ module API
namespace_id: namespace_id,
project_id: project_id
)
- rescue StandardError => error
- Gitlab::AppLogger.warn("Internal Event tracking event failed for event: #{event_name}, message: #{error.message}")
+ rescue StandardError => e
+ Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e, event_name: event_name)
end
def order_by_similarity?(allow_unauthorized: true)
diff --git a/lib/gitlab/pages.rb b/lib/gitlab/pages.rb
index 367fe7639da..700a39c6b41 100644
--- a/lib/gitlab/pages.rb
+++ b/lib/gitlab/pages.rb
@@ -24,6 +24,21 @@ module Gitlab
::Gitlab::CurrentSettings.current_application_settings.force_pages_access_control
end
+ def enabled?
+ Gitlab.config.pages.enabled
+ end
+
+ def add_unique_domain_to(project)
+ return unless enabled?
+ # If the project used a unique domain once, it'll always use the same
+ return if project.project_setting.pages_unique_domain_in_database.present?
+
+ project.project_setting.pages_unique_domain_enabled = true
+ project.project_setting.pages_unique_domain = Gitlab::Pages::RandomDomain.generate(
+ project_path: project.path,
+ namespace_path: project.parent.full_path)
+ end
+
def multiple_versions_enabled_for?(project)
return false if project.blank?
diff --git a/lib/gitlab/prometheus/queries/matched_metric_query.rb b/lib/gitlab/prometheus/queries/matched_metric_query.rb
deleted file mode 100644
index 73de5a11998..00000000000
--- a/lib/gitlab/prometheus/queries/matched_metric_query.rb
+++ /dev/null
@@ -1,82 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Prometheus
- module Queries
- class MatchedMetricQuery < BaseQuery
- MAX_QUERY_ITEMS = 40
-
- def query
- groups_data.map do |group, data|
- {
- group: group.name,
- priority: group.priority,
- active_metrics: data[:active_metrics],
- metrics_missing_requirements: data[:metrics_missing_requirements]
- }
- end
- end
-
- private
-
- def groups_data
- metrics_groups = groups_with_active_metrics(Gitlab::Prometheus::MetricGroup.common_metrics)
- lookup = active_series_lookup(metrics_groups)
-
- groups = {}
-
- metrics_groups.each do |group|
- groups[group] ||= { active_metrics: 0, metrics_missing_requirements: 0 }
- active_metrics = group.metrics.count { |metric| metric.required_metrics.all?(&lookup.method(:has_key?)) }
-
- groups[group][:active_metrics] += active_metrics
- groups[group][:metrics_missing_requirements] += group.metrics.count - active_metrics
- end
-
- groups
- end
-
- def active_series_lookup(metric_groups)
- timeframe_start = 8.hours.ago
- timeframe_end = Time.now
-
- series = metric_groups.flat_map(&:metrics).flat_map(&:required_metrics).uniq
-
- lookup = series.each_slice(MAX_QUERY_ITEMS).flat_map do |batched_series|
- client_series(*batched_series, start_time: timeframe_start, end_time: timeframe_end)
- .select(&method(:has_matching_label?))
- .map { |series_info| [series_info['__name__'], true] }
- end
- lookup.to_h
- end
-
- def has_matching_label?(series_info)
- series_info.key?('environment')
- end
-
- def available_metrics
- @available_metrics ||= client_label_values || []
- end
-
- def filter_active_metrics(metric_group)
- metric_group.metrics.select! do |metric|
- metric.required_metrics.all?(&available_metrics.method(:include?))
- end
- metric_group
- end
-
- def groups_with_active_metrics(metric_groups)
- metric_groups.map(&method(:filter_active_metrics)).select { |group| group.metrics.any? }
- end
-
- def metrics_with_required_series(metric_groups)
- metric_groups.flat_map do |group|
- group.metrics.select do |metric|
- metric.required_metrics.all?(&available_metrics.method(:include?))
- end
- end
- end
- end
- end
- end
-end
diff --git a/lib/gitlab/prometheus/queries/validate_query.rb b/lib/gitlab/prometheus/queries/validate_query.rb
deleted file mode 100644
index 160db7d44bc..00000000000
--- a/lib/gitlab/prometheus/queries/validate_query.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Prometheus
- module Queries
- class ValidateQuery < BaseQuery
- def query(query)
- client_query(query)
- { valid: true }
- rescue Gitlab::PrometheusClient::QueryError, Gitlab::PrometheusClient::ConnectionError => ex
- { valid: false, error: ex.message }
- end
-
- def self.transform_reactive_result(result)
- result[:query] = result.delete :data
- result
- end
- end
- end
- end
-end
diff --git a/lib/gitlab/usage/metric_definition.rb b/lib/gitlab/usage/metric_definition.rb
index 5a321eb7a1a..450575b7223 100644
--- a/lib/gitlab/usage/metric_definition.rb
+++ b/lib/gitlab/usage/metric_definition.rb
@@ -4,7 +4,6 @@ module Gitlab
module Usage
class MetricDefinition
METRIC_SCHEMA_PATH = Rails.root.join('config', 'metrics', 'schema.json')
- SKIP_VALIDATION_STATUS = 'removed'
AVAILABLE_STATUSES = %w[active broken].to_set.freeze
VALID_SERVICE_PING_STATUSES = %w[active broken].to_set.freeze
@@ -177,7 +176,7 @@ module Gitlab
end
def skip_validation?
- !!attributes[:skip_validation] || @skip_validation || attributes[:status] == SKIP_VALIDATION_STATUS
+ !!attributes[:skip_validation] || @skip_validation
end
def events_from_new_structure