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:
Diffstat (limited to 'app/services/prometheus/proxy_variable_substitution_service.rb')
-rw-r--r--app/services/prometheus/proxy_variable_substitution_service.rb24
1 files changed, 19 insertions, 5 deletions
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