summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb
blob: fa2dccc7c92d51460e582895ed983e6722c5d4e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

require 'spec_helper'

describe Gitlab::Prometheus::Queries::KnativeInvocationQuery do
  include PrometheusHelpers

  let(:project) { create(:project) }
  let(:serverless_func) { Serverless::Function.new(project, 'test-name', 'test-ns') }
  let(:client) { double('prometheus_client') }

  subject { described_class.new(client) }

  context 'verify queries' do
    before do
      create(:prometheus_metric,
             :common,
             identifier: :system_metrics_knative_function_invocation_count,
             query: 'sum(ceil(rate(istio_requests_total{destination_service_namespace="%{kube_namespace}", destination_service=~"%{function_name}.*"}[1m])*60))')
    end

    it 'has the query, but no data' do
      expect(client).to receive(:query_range).with(
        'sum(ceil(rate(istio_requests_total{destination_service_namespace="test-ns", destination_service=~"test-name.*"}[1m])*60))',
        hash_including(:start, :stop)
      )

      subject.query(serverless_func.id)
    end
  end
end