Skip to content

Commit

Permalink
Use govuk app config (#970)
Browse files Browse the repository at this point in the history
  • Loading branch information
vertism authored Aug 13, 2024
1 parent 088b34b commit 2fd2aa4
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 72 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ gem "ffi", ">= 1.9.24"
gem "fog-aws"
gem "friendly_id"
gem "govspeak"
gem "govuk_app_config"
gem "govuk_elements_form_builder", "0.1.1"
gem "govuk_elements_rails", "2.2.1"
gem "govuk_frontend_toolkit", "9.0.1"
Expand Down
1 change: 1 addition & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -825,6 +825,7 @@ DEPENDENCIES
fog-aws
friendly_id
govspeak
govuk_app_config
govuk_elements_form_builder (= 0.1.1)
govuk_elements_rails (= 2.2.1)
govuk_frontend_toolkit (= 9.0.1)
Expand Down
9 changes: 0 additions & 9 deletions config/initializers/prometheus_exporter.rb

This file was deleted.

65 changes: 2 additions & 63 deletions config/puma.rb
Original file line number Diff line number Diff line change
@@ -1,63 +1,2 @@
# Puma can serve each request in a thread from an internal thread pool.
# The `threads` method setting takes two numbers a minimum and maximum.
# Any libraries that use thread pools should be configured to match
# the maximum value specified for Puma. Default is set to 5 threads for minimum
# and maximum, this matches the default thread size of Active Record.
#
max_threads_count = ENV.fetch("RAILS_MAX_THREADS", 5)
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count

# Specifies the `port` that Puma will listen on to receive requests, default is 3000.
#
port ENV.fetch("PORT", 3000)

# Specifies the `environment` that Puma will run in.
#
environment ENV.fetch("RAILS_ENV") { "development" }

# Specifies the number of `workers` to boot in clustered mode.
# Workers are forked webserver processes. If using threads and workers together
# the concurrency of the application would be max `threads` * `workers`.
# Workers do not work on JRuby or Windows (both of which do not support
# processes).
#
workers ENV.fetch("WEB_CONCURRENCY", 2)

# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
# process behavior so workers use less memory. If you use this option
# you need to make sure to reconnect any threads in the `on_worker_boot`
# block.
#
preload_app!

# The code in the `on_worker_boot` will be called if you are using
# clustered mode by specifying a number of `workers`. After each worker
# process is booted this block will be run, if you are using `preload_app!`
# option you will want to use this block to reconnect to any threads
# or connections that may have been created at application boot, Ruby
# cannot share connections between processes.
#
on_worker_boot do
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
end

# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart

# Activerecord Connection Pool Metrics
after_worker_boot do
if Rails.env.production?
require "prometheus_exporter/instrumentation"
require "prometheus_exporter/client"
PrometheusExporter::Instrumentation::Puma.start
PrometheusExporter::Instrumentation::Process.start(type: "web")

PrometheusExporter::Instrumentation::ActiveRecord.start(
custom_labels: { type: "puma_worker" },
config_labels: %i[database host],
)
end
end
require "govuk_app_config/govuk_puma"
GovukPuma.configure_rails(self)

0 comments on commit 2fd2aa4

Please sign in to comment.