X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/867a767ee96c65b89179c9d53f8c7805173f3fa3..8b89cd092a7f884d64a6901b4935f3193b69da10:/cookbooks/php/resources/fpm.rb diff --git a/cookbooks/php/resources/fpm.rb b/cookbooks/php/resources/fpm.rb index d70efe53c..13c973580 100644 --- a/cookbooks/php/resources/fpm.rb +++ b/cookbooks/php/resources/fpm.rb @@ -17,6 +17,8 @@ # limitations under the License. # +unified_mode true + default_action :create property :pool, :kind_of => String, :name_property => true @@ -24,18 +26,19 @@ property :port, :kind_of => Integer property :user, :kind_of => String, :default => "www-data" property :group, :kind_of => String, :default => "www-data" property :pm, :kind_of => String, :default => "dynamic" -property :pm_max_children, :kind_of => Integer, :default => 5 -property :pm_start_servers, :kind_of => Integer, :default => 2 -property :pm_min_spare_servers, :kind_of => Integer, :default => 1 -property :pm_max_spare_servers, :kind_of => Integer, :default => 3 -property :pm_max_requests, :kind_of => Integer, :default => 500 -property :request_terminate_timeout, :kind_of => Integer, :default => 0 +property :pm_max_children, :kind_of => Integer, :default => 10 +property :pm_start_servers, :kind_of => Integer, :default => 4 +property :pm_min_spare_servers, :kind_of => Integer, :default => 2 +property :pm_max_spare_servers, :kind_of => Integer, :default => 6 +property :pm_max_requests, :kind_of => Integer, :default => 1000 +property :request_terminate_timeout, :kind_of => Integer, :default => 1800 property :environment, :kind_of => Hash, :default => {} property :php_values, :kind_of => Hash, :default => {} property :php_admin_values, :kind_of => Hash, :default => {} property :php_flags, :kind_of => Hash, :default => {} property :php_admin_flags, :kind_of => Hash, :default => {} property :reload_fpm, :kind_of => [TrueClass, FalseClass], :default => true +property :prometheus_port, :kind_of => Integer action :create do template conf_file do @@ -44,7 +47,24 @@ action :create do owner "root" group "root" mode "644" - variables new_resource.to_hash + variables new_resource.to_hash.merge(:pool => new_resource.pool) + end + + if new_resource.prometheus_port + prometheus_exporter "phpfpm" do + port new_resource.prometheus_port + restrict_address_families "AF_UNIX" + service service_name + group "www-data" + command "server" + options "--phpfpm.scrape-uri=#{scrape_uri} --phpfpm.fix-process-count" + labels "pool" => new_resource.pool + end + else + prometheus_exporter "phpfpm" do + action :delete + service service_name + end end end @@ -52,6 +72,11 @@ action :delete do file conf_file do action :delete end + + prometheus_exporter "phpfpm" do + action :delete + service service_name + end end action_class do @@ -62,6 +87,18 @@ action_class do def conf_file "/etc/php/#{php_version}/fpm/pool.d/#{new_resource.pool}.conf" end + + def service_name + "phpfpm-#{new_resource.pool}" + end + + def scrape_uri + if new_resource.port + "tcp://127.0.0.1:#{new_resource.port}/status" + else + "unix:///run/php/php-#{new_resource.pool}-fpm.sock;/status" + end + end end def after_created