|
3 | 3 | RSpec.describe 'Metrics' do |
4 | 4 | let(:user) { VCAP::CloudController::User.make } |
5 | 5 | let(:user_header) { headers_for(user) } |
6 | | - |
7 | 6 | let(:metrics_webserver) { VCAP::CloudController::MetricsWebserver.new } |
| 7 | + |
8 | 8 | delegate :app, to: :metrics_webserver |
9 | 9 |
|
10 | | - # FIXME: PrometheusUpdater methods are not called -> returned values are almost all 0 |
11 | 10 | before do |
12 | | - prom_client = Prometheus::Client::Registry.new |
13 | | - Prometheus::Client.config.data_store = Prometheus::Client::DataStores::DirectFileStore.new(dir: Dir.mktmpdir) |
14 | | - VCAP::CloudController::Metrics::PrometheusUpdater.new(registry: prom_client) |
15 | | - |
| 11 | + allow_any_instance_of(VCAP::CloudController::Metrics::PeriodicUpdater).to receive(:update_webserver_stats) |
16 | 12 | metrics_webserver.start(TestConfig.config_instance) |
17 | 13 | end |
18 | 14 |
|
| 15 | + after do |
| 16 | + metrics_webserver.stop |
| 17 | + end |
| 18 | + |
19 | 19 | it 'can be called several times' do |
20 | 20 | get '/internal/v4/metrics', nil |
21 | 21 |
|
|
36 | 36 | 10.times do |
37 | 37 | VCAP::CloudController::User.make |
38 | 38 | end |
| 39 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
39 | 40 | end |
40 | 41 |
|
41 | 42 | it 'reports the total number of users' do |
|
49 | 50 |
|
50 | 51 | context 'cc_vitals' do |
51 | 52 | it 'reports vitals' do |
| 53 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
52 | 54 | get '/internal/v4/metrics', nil |
53 | 55 |
|
54 | 56 | expect(last_response.body).to match(/cc_vitals_num_cores [1-9][0-9]*\.\d+/) |
|
64 | 66 | before do |
65 | 67 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.day }) |
66 | 68 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.day }) |
| 69 | + |
| 70 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
67 | 71 | end |
68 | 72 |
|
69 | 73 | after do |
|
82 | 86 | before do |
83 | 87 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now }) |
84 | 88 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now }) |
| 89 | + |
| 90 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
85 | 91 | end |
86 | 92 |
|
87 | 93 | after do |
|
100 | 106 | before do |
101 | 107 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.minute }) |
102 | 108 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.minute }) |
| 109 | + |
| 110 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
103 | 111 | end |
104 | 112 |
|
105 | 113 | after do |
|
118 | 126 | before do |
119 | 127 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.day }) |
120 | 128 | Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.day }) |
121 | | - |
122 | 129 | Delayed::Job.dataset.update(failed_at: Time.now.utc) |
| 130 | + |
| 131 | + CloudController::DependencyLocator.instance.periodic_updater.update! |
123 | 132 | end |
124 | 133 |
|
125 | 134 | after do |
|
0 commit comments