From b77fe7db3e885edca14c862f362e2bbd43f0e498 Mon Sep 17 00:00:00 2001 From: Chris Baumbauer Date: Sat, 6 Apr 2019 02:02:39 +0000 Subject: Add Knative metrics to Prometheus --- .../prometheus/queries/knative_invocation_query.rb | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/gitlab/prometheus/queries/knative_invocation_query.rb (limited to 'lib') diff --git a/lib/gitlab/prometheus/queries/knative_invocation_query.rb b/lib/gitlab/prometheus/queries/knative_invocation_query.rb new file mode 100644 index 00000000000..2691abe46d6 --- /dev/null +++ b/lib/gitlab/prometheus/queries/knative_invocation_query.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +module Gitlab + module Prometheus + module Queries + class KnativeInvocationQuery < BaseQuery + include QueryAdditionalMetrics + + def query(serverless_function_id) + PrometheusMetric + .find_by_identifier(:system_metrics_knative_function_invocation_count) + .to_query_metric.tap do |q| + q.queries[0][:result] = run_query(q.queries[0][:query_range], context(serverless_function_id)) + end + end + + protected + + def context(function_id) + function = Serverless::Function.find_by_id(function_id) + { + function_name: function.name, + kube_namespace: function.namespace + } + end + + def run_query(query, context) + query %= context + client_query_range(query, start: 8.hours.ago.to_f, stop: Time.now.to_f) + end + + def self.transform_reactive_result(result) + result[:metrics] = result.delete :data + result + end + end + end + end +end -- cgit v1.2.1