diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /app/services/prometheus | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'app/services/prometheus')
-rw-r--r-- | app/services/prometheus/create_default_alerts_service.rb | 11 | ||||
-rw-r--r-- | app/services/prometheus/proxy_service.rb | 4 | ||||
-rw-r--r-- | app/services/prometheus/proxy_variable_substitution_service.rb | 24 |
3 files changed, 34 insertions, 5 deletions
diff --git a/app/services/prometheus/create_default_alerts_service.rb b/app/services/prometheus/create_default_alerts_service.rb index c87cbbbe3cf..53baf6a650e 100644 --- a/app/services/prometheus/create_default_alerts_service.rb +++ b/app/services/prometheus/create_default_alerts_service.rb @@ -33,6 +33,7 @@ module Prometheus return ServiceResponse.error(message: 'Invalid environment') unless environment create_alerts + schedule_prometheus_update ServiceResponse.success end @@ -51,6 +52,16 @@ module Prometheus end end + def schedule_prometheus_update + return unless prometheus_application + + ::Clusters::Applications::ScheduleUpdateService.new(prometheus_application, project).execute + end + + def prometheus_application + environment.cluster_prometheus_adapter + end + def metrics_by_identifier strong_memoize(:metrics_by_identifier) do metric_identifiers = DEFAULT_ALERTS.map { |alert| alert[:identifier] } diff --git a/app/services/prometheus/proxy_service.rb b/app/services/prometheus/proxy_service.rb index 085cfc76196..e0bc5518d30 100644 --- a/app/services/prometheus/proxy_service.rb +++ b/app/services/prometheus/proxy_service.rb @@ -30,6 +30,10 @@ module Prometheus 'query_range' => { method: ['GET'], params: %w(query start end step timeout) + }, + 'series' => { + method: %w(GET), + params: %w(match start end) } }.freeze diff --git a/app/services/prometheus/proxy_variable_substitution_service.rb b/app/services/prometheus/proxy_variable_substitution_service.rb index 7b98cfc592a..10fb3a8c1b5 100644 --- a/app/services/prometheus/proxy_variable_substitution_service.rb +++ b/app/services/prometheus/proxy_variable_substitution_service.rb @@ -58,7 +58,7 @@ module Prometheus def substitute_variables(result) return success(result) unless query(result) - result[:params][:query] = gsub(query(result), full_context) + result[:params][:query] = gsub(query(result), full_context(result)) success(result) end @@ -75,12 +75,16 @@ module Prometheus end end - def predefined_context - Gitlab::Prometheus::QueryVariables.call(@environment).stringify_keys + def predefined_context(result) + Gitlab::Prometheus::QueryVariables.call( + @environment, + start_time: start_timestamp(result), + end_time: end_timestamp(result) + ).stringify_keys end - def full_context - @full_context ||= predefined_context.reverse_merge(variables_hash) + def full_context(result) + @full_context ||= predefined_context(result).reverse_merge(variables_hash) end def variables @@ -91,6 +95,16 @@ module Prometheus variables.to_h end + def start_timestamp(result) + Time.rfc3339(result[:params][:start]) + rescue ArgumentError + end + + def end_timestamp(result) + Time.rfc3339(result[:params][:end]) + rescue ArgumentError + end + def query(result) result[:params][:query] end |