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:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-06-09 13:43:12 +0300
committerPawel Chojnacki <pawel@chojnacki.ws>2017-06-09 23:47:01 +0300
commit0e7e7c2f2bd0e9c913cda438826a60e761130271 (patch)
tree0ba18ecb29cabc8cd80c9961daf20414fe368b71 /lib/gitlab/prometheus
parentf78fd3de5d55830c84f25cfd50d399e7ddaddf30 (diff)
Test Additional metrics parser and fix query checking tests
Diffstat (limited to 'lib/gitlab/prometheus')
-rw-r--r--lib/gitlab/prometheus/additional_metrics_parser.rb15
-rw-r--r--lib/gitlab/prometheus/queries/query_additional_metrics.rb5
2 files changed, 14 insertions, 6 deletions
diff --git a/lib/gitlab/prometheus/additional_metrics_parser.rb b/lib/gitlab/prometheus/additional_metrics_parser.rb
index 694001605ef..9bd41b99d81 100644
--- a/lib/gitlab/prometheus/additional_metrics_parser.rb
+++ b/lib/gitlab/prometheus/additional_metrics_parser.rb
@@ -14,22 +14,29 @@ module Gitlab
end
def metric_from_entry(entry)
- missing_fields = [:title, :required_metrics, :weight, :queries].select { |key| !entry.key?(key) }
+ required_fields = [:title, :required_metrics, :weight, :queries]
+ missing_fields = required_fields.select { |key| entry[key].nil? }
raise ParsingError.new("entry missing required fields #{missing_fields}") unless missing_fields.empty?
Metric.new(entry[:title], entry[:required_metrics], entry[:weight], entry[:y_label], entry[:queries])
end
def group_from_entry(entry)
- missing_fields = [:group, :priority, :metrics].select { |key| !entry.key?(key) }
- raise ParsingError.new("entry missing required fields #{missing_fields}") unless missing_fields.empty?
+ required_fields = [:group, :priority, :metrics]
+ missing_fields = required_fields.select { |key| entry[key].nil? }
+
+ raise ParsingError.new("entry missing required fields #{missing_fields.map(&:to_s)}") unless missing_fields.empty?
group = MetricGroup.new(entry[:group], entry[:priority])
group.tap { |g| g.metrics = metrics_from_list(entry[:metrics]) }
end
def additional_metrics_raw
- @additional_metrics_raw ||= YAML.load_file(Rails.root.join('config/additional_metrics.yml'))&.map(&:deep_symbolize_keys).freeze
+ @additional_metrics_raw ||= load_yaml_file&.map(&:deep_symbolize_keys).freeze
+ end
+
+ def load_yaml_file
+ YAML.load_file(Rails.root.join('config/additional_metrics.yml'))
end
end
end
diff --git a/lib/gitlab/prometheus/queries/query_additional_metrics.rb b/lib/gitlab/prometheus/queries/query_additional_metrics.rb
index a5a401f84cd..e44be770544 100644
--- a/lib/gitlab/prometheus/queries/query_additional_metrics.rb
+++ b/lib/gitlab/prometheus/queries/query_additional_metrics.rb
@@ -37,18 +37,19 @@ module Gitlab
def query_with_result(query)
query[:result]&.any? do |item|
- item&.[]('values')&.any? || item&.[]('value')&.any?
+ item&.[](:values)&.any? || item&.[](:value)&.any?
end
end
def process_query(context, query)
query_with_result = query.dup
- query_with_result[:result] =
+ result =
if query.key?(:query_range)
client_query_range(query[:query_range] % context, start: context[:timeframe_start], stop: context[:timeframe_end])
else
client_query(query[:query] % context, time: context[:timeframe_end])
end
+ query_with_result[:result] = result&.map(&:deep_symbolize_keys)
query_with_result
end