Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ gem 'clockwork', require: false
gem 'cloudfront-signer'
gem 'concurrent-ruby'
gem 'digest-xxhash'
gem 'eventmachine', '~> 1.2.7'
gem 'fluent-logger'
gem 'googleapis-common-protos', '>= 1.8.0'
gem 'hashdiff'
Expand Down Expand Up @@ -38,7 +37,6 @@ gem 'sinatra-contrib'
gem 'statsd-ruby', '~> 1.5.0'
gem 'steno'
gem 'talentbox-delayed_job_sequel', '~> 4.3.0'
gem 'thin'
gem 'uri', '~> 1.1'
gem 'vmstat', '~> 2.3'

Expand Down
9 changes: 0 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ GEM
bigdecimal
rexml
crass (1.0.6)
daemons (1.4.1)
date (3.5.0)
debug (1.11.0)
irb (~> 1.10)
Expand All @@ -144,7 +143,6 @@ GEM
drb (2.2.3)
erb (5.1.3)
erubi (1.13.1)
eventmachine (1.2.7)
excon (1.3.0)
logger
faraday (0.17.6)
Expand Down Expand Up @@ -568,11 +566,6 @@ GEM
delayed_job (~> 4.1.0)
sequel (>= 3.38, < 6.0)
tzinfo
thin (2.0.1)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
logger
rack (>= 1, < 4)
thor (1.4.0)
tilt (2.6.1)
timecop (0.9.10)
Expand Down Expand Up @@ -625,7 +618,6 @@ DEPENDENCIES
concurrent-ruby
debug (~> 1.11)
digest-xxhash
eventmachine (~> 1.2.7)
fluent-logger
fog-aliyun
fog-aws
Expand Down Expand Up @@ -692,7 +684,6 @@ DEPENDENCIES
statsd-ruby (~> 1.5.0)
steno
talentbox-delayed_job_sequel (~> 4.3.0)
thin
timecop
uri (~> 1.1)
vmstat (~> 2.3)
Expand Down
18 changes: 0 additions & 18 deletions app/controllers/internal/metrics_controller.rb

This file was deleted.

2 changes: 1 addition & 1 deletion config/cloud_controller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ locket:
key_file: 'spec/fixtures/certs/bbs_client.key'

threadpool_size: 20
webserver: thin
webserver: puma
default_app_lifecycle: buildpack
custom_metric_tag_prefix_list: ["metric.tag.cloudfoundry.org"]

Expand Down
1 change: 0 additions & 1 deletion lib/cloud_controller.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
require 'sinatra'
require 'sequel'
require 'thin'
require 'oj'
require 'delayed_job'

Expand Down
2 changes: 1 addition & 1 deletion lib/cloud_controller/config_schemas/api_schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ class ApiSchema < VCAP::Config
threadpool_size: Integer,
skip_cert_verify: bool,

webserver: String, # thin or puma
webserver: String, # currently only puma
optional(:puma) => {
automatic_worker_count: bool,
workers: Integer,
Expand Down
12 changes: 8 additions & 4 deletions lib/cloud_controller/metrics_webserver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,19 @@ def initialize
end

def start(config)
server = Puma::Server.new(@app)
@server = Puma::Server.new(@app)

if config.get(:nginx, :metrics_socket).nil? || config.get(:nginx, :metrics_socket).empty?
server.add_tcp_listener('127.0.0.1', 9395)
@server.add_tcp_listener('127.0.0.1', 9395)
else
server.add_unix_listener(config.get(:nginx, :metrics_socket))
@server.add_unix_listener(config.get(:nginx, :metrics_socket))
end

server.run
@server.run
end

def stop
@server.stop(true)
end

private
Expand Down
9 changes: 2 additions & 7 deletions lib/cloud_controller/runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
require 'cloud_controller/logs/request_logs'
require 'cloud_controller/telemetry_logger'
require 'cloud_controller/secrets_fetcher'
require 'cloud_controller/runners/thin_runner'
require 'cloud_controller/runners/puma_runner'
require 'cloud_controller/metrics_webserver'
require 'prometheus/client/data_stores/direct_file_store'
Expand All @@ -33,7 +32,7 @@ def initialize(argv)

# DB connection metrics have a label to determine whether the process accessing the connection is the
# main or a worker process. We need to set this env variable before `setup_db` otherwise the main process
# will show up twice in the metrics as main and worker. Thin metrics will be labeled with main as well.
# will show up twice in the metrics as main and worker.
ENV['PROCESS_TYPE'] = 'main'

setup_cloud_controller
Expand All @@ -45,11 +44,7 @@ def initialize(argv)
builder = RackAppBuilder.new
app = builder.build(@config, request_metrics, request_logs)

@server = if @config.get(:webserver) == 'puma'
VCAP::CloudController::PumaRunner.new(@config, app, logger, periodic_updater, request_logs)
else
VCAP::CloudController::ThinRunner.new(@config, app, logger, periodic_updater, request_logs)
end
@server = VCAP::CloudController::PumaRunner.new(@config, app, logger, periodic_updater, request_logs)
end

def logger
Expand Down
73 changes: 0 additions & 73 deletions lib/cloud_controller/runners/thin_runner.rb

This file was deleted.

3 changes: 2 additions & 1 deletion middleware/cors.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ def call(env)
})
end

return [200, preflight_headers, ''] if env['REQUEST_METHOD'] == 'OPTIONS'
# NOTE: The response body must be an enumerable for Puma. Returning an empty string does not work.
return [200, preflight_headers, ['']] if env['REQUEST_METHOD'] == 'OPTIONS'

status, headers, body = call_app(env)

Expand Down
34 changes: 19 additions & 15 deletions spec/request/internal/metrics_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,17 @@
RSpec.describe 'Metrics' do
let(:user) { VCAP::CloudController::User.make }
let(:user_header) { headers_for(user) }
let(:threadqueue) { double(EventMachine::Queue, size: 20, num_waiting: 0) }
let(:resultqueue) { double(EventMachine::Queue, size: 0, num_waiting: 1) }
let(:metrics_webserver) { VCAP::CloudController::MetricsWebserver.new }

delegate :app, to: :metrics_webserver

before do
allow(EventMachine).to receive(:connection_count).and_return(123)

allow(EventMachine).to receive(:instance_variable_get) do |instance_var|
case instance_var
when :@threadqueue
threadqueue
when :@resultqueue
resultqueue
else
raise "Unexpected call: #{instance_var}"
end
end
allow_any_instance_of(VCAP::CloudController::Metrics::PeriodicUpdater).to receive(:update_webserver_stats)
metrics_webserver.start(TestConfig.config_instance)
end

after do
metrics_webserver.stop
end

it 'can be called several times' do
Expand All @@ -41,6 +36,7 @@
10.times do
VCAP::CloudController::User.make
end
CloudController::DependencyLocator.instance.periodic_updater.update!
end

it 'reports the total number of users' do
Expand All @@ -54,6 +50,7 @@

context 'cc_vitals' do
it 'reports vitals' do
CloudController::DependencyLocator.instance.periodic_updater.update!
get '/internal/v4/metrics', nil

expect(last_response.body).to match(/cc_vitals_num_cores [1-9][0-9]*\.\d+/)
Expand All @@ -69,6 +66,8 @@
before do
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.day })
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.day })

CloudController::DependencyLocator.instance.periodic_updater.update!
end

after do
Expand All @@ -87,6 +86,8 @@
before do
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now })
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now })

CloudController::DependencyLocator.instance.periodic_updater.update!
end

after do
Expand All @@ -105,6 +106,8 @@
before do
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.minute })
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.minute })

CloudController::DependencyLocator.instance.periodic_updater.update!
end

after do
Expand All @@ -123,8 +126,9 @@
before do
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_api_0', run_at: Time.now + 1.day })
Delayed::Job.enqueue(VCAP::CloudController::Jobs::Runtime::EventsCleanup.new(1), { queue: 'cc_generic', run_at: Time.now + 1.day })

Delayed::Job.dataset.update(failed_at: Time.now.utc)

CloudController::DependencyLocator.instance.periodic_updater.update!
end

after do
Expand Down
34 changes: 0 additions & 34 deletions spec/unit/controllers/internal/metric_controller_spec.rb

This file was deleted.

1 change: 0 additions & 1 deletion spec/unit/lib/background_job_environment_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
describe '#setup_environment' do
before do
allow(VCAP::CloudController::DB).to receive(:load_models)
allow(EM).to receive(:run).and_yield
allow(VCAP::CloudController::ResourcePool).to receive(:new)
end

Expand Down
4 changes: 0 additions & 4 deletions spec/unit/lib/cloud_controller/diagnostics_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ module VCAP::CloudController

subject(:diagnostics) { Diagnostics.new }

before do
allow(EventMachine).to receive(:connection_count).and_return(17)
end

after do
VCAP::Request.current_id = nil
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ module Diego
before do
allow(blobstore_url_generator).to receive_messages(app_package_download_url: app_package_download_url, admin_buildpack_download_url: admin_buildpack_download_url,
buildpack_cache_download_url: build_artifacts_cache_download_uri)

allow(EM).to receive(:add_timer)
allow(EM).to receive(:defer).and_yield
end

describe '#buildpack_entries' do
Expand Down
Loading