BigW Consortium Gitlab

Commit ffedc52e by Pawel Chojnacki

Cleanup Additional Metrics tests

parent a3eb8264
require 'spec_helper' require 'spec_helper'
describe Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery, lib: true do describe Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery, lib: true do
include Prometheus::AdditionalMetricsQueryHelper
include Prometheus::MetricBuilders include Prometheus::MetricBuilders
let(:metric_group_class) { Gitlab::Prometheus::MetricGroup }
let(:metric_class) { Gitlab::Prometheus::Metric }
let(:client) { double('prometheus_client') } let(:client) { double('prometheus_client') }
let(:environment) { create(:environment, slug: 'environment-slug') } let(:environment) { create(:environment, slug: 'environment-slug') }
let(:deployment) { create(:deployment, environment: environment) } let(:deployment) { create(:deployment, environment: environment) }
subject(:query_result) { described_class.new(client).query(deployment.id) } subject(:query_result) { described_class.new(client).query(deployment.id) }
around do |example|
Timecop.freeze { example.run }
end
include_examples 'additional metrics query' do include_examples 'additional metrics query' do
it 'queries using specific time' do it 'queries using specific time' do
expect(client).to receive(:query_range).with(anything, expect(client).to receive(:query_range).with(anything,
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Prometheus::Queries::AdditionalMetricsQuery, lib: true do describe Gitlab::Prometheus::Queries::AdditionalMetricsQuery, lib: true do
include Prometheus::AdditionalMetricsQueryHelper
include Prometheus::MetricBuilders include Prometheus::MetricBuilders
let(:client) { double('prometheus_client') } let(:client) { double('prometheus_client') }
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::Prometheus::Queries::MatchedMetricsQuery, lib: true do describe Gitlab::Prometheus::Queries::MatchedMetricsQuery, lib: true do
include Prometheus::MatchedMetricsQueryHelper
include Prometheus::MetricBuilders include Prometheus::MetricBuilders
let(:metric_group_class) { Gitlab::Prometheus::MetricGroup } let(:metric_group_class) { Gitlab::Prometheus::MetricGroup }
let(:metric_class) { Gitlab::Prometheus::Metric } let(:metric_class) { Gitlab::Prometheus::Metric }
def series_info_with_environment(*more_metrics)
%w{metric_a metric_b}.concat(more_metrics).map { |metric_name| { '__name__' => metric_name, 'environment' => '' } }
end
let(:metric_names) { %w{metric_a metric_b} }
let(:series_info_without_environment) do
[{ '__name__' => 'metric_a' },
{ '__name__' => 'metric_b' }]
end
let(:partialy_empty_series_info) { [{ '__name__' => 'metric_a', 'environment' => '' }] }
let(:empty_series_info) { [] }
let(:client) { double('prometheus_client') } let(:client) { double('prometheus_client') }
subject { described_class.new(client) } subject { described_class.new(client) }
......
module Prometheus
module AdditionalMetricsQueryHelper
def metric_names
%w{metric_a metric_b}
end
def query_result
[
{
'metric': {},
'value': [
1488772511.004,
'0.000041021495238095323'
]
}
]
end
def query_range_result
[
{
'metric': {},
'values': [
[1488758662.506, '0.00002996364761904785'],
[1488758722.506, '0.00003090239047619091']
]
}
]
end
end
end
RSpec.shared_examples 'additional metrics query' do RSpec.shared_examples 'additional metrics query' do
include Prometheus::MetricBuilders include Prometheus::MetricBuilders
let(:metric_group_class) { Gitlab::Prometheus::MetricGroup }
let(:metric_class) { Gitlab::Prometheus::Metric }
let(:metric_names) { %w{metric_a metric_b} }
let(:query_range_result) do
[{ 'metric': {}, 'values': [[1488758662.506, '0.00002996364761904785'], [1488758722.506, '0.00003090239047619091']] }]
end
before do before do
allow(client).to receive(:label_values).and_return(metric_names) allow(client).to receive(:label_values).and_return(metric_names)
allow(metric_group_class).to receive(:all).and_return([simple_metric_group(metrics: [simple_metric])]) allow(metric_group_class).to receive(:all).and_return([simple_metric_group(metrics: [simple_metric])])
end end
let(:metric_group_class) { Gitlab::Prometheus::MetricGroup }
let(:metric_class) { Gitlab::Prometheus::Metric }
context 'with one group where two metrics is found' do context 'with one group where two metrics is found' do
before do before do
allow(metric_group_class).to receive(:all).and_return([simple_metric_group]) allow(metric_group_class).to receive(:all).and_return([simple_metric_group])
......
module Prometheus
module MatchedMetricsQueryHelper
def metric_names
%w{metric_a metric_b}
end
def series_info_with_environment(*more_metrics)
%w{metric_a metric_b}.concat(more_metrics).map { |metric_name| { '__name__' => metric_name, 'environment' => '' } }
end
def series_info_without_environment
[{ '__name__' => 'metric_a' },
{ '__name__' => 'metric_b' }]
end
def partialy_empty_series_info
[{ '__name__' => 'metric_a', 'environment' => '' }]
end
def empty_series_info
[]
end
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment