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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-10 21:09:32 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-10 21:09:32 +0300
commited5add1c2f001c9bd54e664b32f212de172eca6a (patch)
treef9449cbecde36706f25a62f426b5398566ae5cca /app/models
parentde2fb5b82c92c90f90ed67ced45143c04e934fb8 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models')
-rw-r--r--app/models/performance_monitoring/prometheus_dashboard.rb34
-rw-r--r--app/models/prometheus_alert.rb3
2 files changed, 26 insertions, 11 deletions
diff --git a/app/models/performance_monitoring/prometheus_dashboard.rb b/app/models/performance_monitoring/prometheus_dashboard.rb
index 5f2df444fd0..30fb1935a27 100644
--- a/app/models/performance_monitoring/prometheus_dashboard.rb
+++ b/app/models/performance_monitoring/prometheus_dashboard.rb
@@ -4,27 +4,41 @@ module PerformanceMonitoring
class PrometheusDashboard
include ActiveModel::Model
- attr_accessor :dashboard, :panel_groups
+ attr_accessor :dashboard, :panel_groups, :path, :environment, :priority
validates :dashboard, presence: true
validates :panel_groups, presence: true
- def self.from_json(json_content)
- dashboard = new(
- dashboard: json_content['dashboard'],
- panel_groups: json_content['panel_groups'].map { |group| PrometheusPanelGroup.from_json(group) }
- )
-
- dashboard.tap(&:validate!)
+ class << self
+ def from_json(json_content)
+ dashboard = new(
+ dashboard: json_content['dashboard'],
+ panel_groups: json_content['panel_groups'].map { |group| PrometheusPanelGroup.from_json(group) }
+ )
+
+ dashboard.tap(&:validate!)
+ end
+
+ def find_for(project:, user:, path:, options: {})
+ dashboard_response = Gitlab::Metrics::Dashboard::Finder.find(project, user, options.merge(dashboard_path: path))
+ return unless dashboard_response[:status] == :success
+
+ new(
+ {
+ path: path,
+ environment: options[:environment]
+ }.merge(dashboard_response[:dashboard])
+ )
+ end
end
def to_yaml
- self.as_json(only: valid_attributes).to_yaml
+ self.as_json(only: yaml_valid_attributes).to_yaml
end
private
- def valid_attributes
+ def yaml_valid_attributes
%w(panel_groups panels metrics group priority type title y_label weight id unit label query query_range dashboard)
end
end
diff --git a/app/models/prometheus_alert.rb b/app/models/prometheus_alert.rb
index a1303f59129..fbc0281296f 100644
--- a/app/models/prometheus_alert.rb
+++ b/app/models/prometheus_alert.rb
@@ -56,7 +56,8 @@ class PrometheusAlert < ApplicationRecord
"for" => "5m",
"labels" => {
"gitlab" => "hook",
- "gitlab_alert_id" => prometheus_metric_id
+ "gitlab_alert_id" => prometheus_metric_id,
+ "gitlab_prometheus_alert_id" => id
}
}
end