diff --git a/manifests/collect.pp b/manifests/collect.pp index 4bbd9e2..317d6bf 100644 --- a/manifests/collect.pp +++ b/manifests/collect.pp @@ -7,7 +7,7 @@ define pe_databases::collect ( String $database_type = $title, String $command = undef, - Boolean $disable_maintenance = false, + Boolean $disable_maintenance = $pe_databases::disable_maintenance, String $on_cal = undef, ) { Service { diff --git a/manifests/init.pp b/manifests/init.pp index 08cea4f..b615bd7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,18 +15,51 @@ # @param other_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'other' tables # @param reports_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'reports' tables # @param resource_events_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'resource_events' tables +# @param maintenance_work_mem [String] Increase to improve speed of speed of vacuuming and reindexing (Example "1GB") +# @param work_mem [String] Allows PostgreSQL to do larger in-memory sorts (Default: "4MB") +# @param autovacuum_work_mem [String] Similar to but for maintenance_work_mem autovacuum processes only (Example "256MB") +# @param autovacuum_max_workers [Integer] Maximum number of autovacuum processes to run concurrently (Default: 3) +# class pe_databases ( - Boolean $manage_database_maintenance = true, - Boolean $disable_maintenance = false, - Boolean $manage_postgresql_settings = true, - Boolean $manage_table_settings = false, - String[1] $install_dir = '/opt/puppetlabs/pe_databases', - String[1] $scripts_dir = "${install_dir}/scripts", - String[1] $facts_tables_repack_timer = 'Tue,Sat *-*-* 04:30:00', - String[1] $catalogs_tables_repack_timer = 'Sun,Thu *-*-* 04:30:00', - String[1] $other_tables_repack_timer = '*-*-20 05:30:00', - String[1] $reports_tables_repack_timer = '*-*-10 05:30:00', - String[1] $resource_events_tables_repack_timer = '*-*-15 05:30:00', +# lint:ignore:140chars lint:ignore:optional_default + Boolean $all_in_one_pe_install = true, + Hash $arbitrary_postgresql_conf_settings = {}, + Float[0,1] $autovacuum_vacuum_scale_factor = 0.08, + Float[0,1] $autovacuum_analyze_scale_factor = 0.04, + Integer $autovacuum_max_workers = max(3, min(8, $facts['processors']['count'] / 3)), + String $autovacuum_work_mem = $all_in_one_pe_install ? { + false => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 3 / $autovacuum_max_workers}MB", + true => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 8 / $autovacuum_max_workers}MB", + }, + Optional[Float[0,1]] $catalogs_autovacuum_vacuum_scale_factor = 0.75, + String[1] $catalogs_tables_repack_timer = 'Sun,Thu *-*-* 04:30:00', + Optional[Float[0,1]] $certnames_autovacuum_vacuum_scale_factor = 0.75, + Float[0,1] $checkpoint_completion_target = 0.9, + Integer $checkpoint_segments = 128, + Boolean $disable_maintenance = false, + Optional[Float[0,1]] $factsets_autovacuum_vacuum_scale_factor = 0.80, + String[1] $facts_tables_repack_timer = 'Tue,Sat *-*-* 04:30:00', + String $install_dir = '/opt/puppetlabs/pe_databases', + Integer $jobs = $facts['processors']['count'] / 4, + Integer $log_autovacuum_min_duration = -1, + Integer $log_temp_files = -1, + String $maintenance_work_mem = $all_in_one_pe_install ? { + false => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 3}MB", + true => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 8}MB", + }, + Boolean $manage_database_maintenance = true, + Boolean $manage_postgresql_service = true, + Boolean $manage_postgresql_settings = true, + Boolean $manage_reports_autovacuum_cost_delay = true, + Boolean $manage_table_settings = false, + Integer $max_connections = 1000, + String[1] $other_tables_repack_timer = '*-*-20 05:30:00', + String[1] $reports_tables_repack_timer = '*-*-10 05:30:00', + String[1] $resource_events_tables_repack_timer = '*-*-15 05:30:00', + String $scripts_dir = "${install_dir}/scripts", + String $work_mem = '8MB', + Optional[Float[0,1]] $reports_autovacuum_vacuum_scale_factor = 0.01, + # lint:endignore ) { $psql_version = $facts['pe_postgresql_info']['installed_server_version'] ? { undef => undef, diff --git a/manifests/pg_repack.pp b/manifests/pg_repack.pp index ed74e08..491620d 100644 --- a/manifests/pg_repack.pp +++ b/manifests/pg_repack.pp @@ -12,8 +12,8 @@ # @param reports_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'reports' tables # @param resource_events_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'resource_events' tables class pe_databases::pg_repack ( - Boolean $disable_maintenance = false, - Integer $jobs = $facts['processors']['count'] / 4, + Boolean $disable_maintenance = $pe_databases::disable_maintenance, + Integer $jobs = $pe_databases::jobs, String[1] $facts_tables_repack_timer = $pe_databases::facts_tables_repack_timer, String[1] $catalogs_tables_repack_timer = $pe_databases::catalogs_tables_repack_timer, String[1] $other_tables_repack_timer = $pe_databases::other_tables_repack_timer, diff --git a/manifests/postgresql_settings.pp b/manifests/postgresql_settings.pp index 43a85a8..7e2e6e3 100644 --- a/manifests/postgresql_settings.pp +++ b/manifests/postgresql_settings.pp @@ -5,36 +5,28 @@ # # @param maintenance_work_mem [String] Increase to improve speed of speed of vacuuming and reindexing (Example "1GB") # @param work_mem [String] Allows PostgreSQL to do larger in-memory sorts (Default: "4MB") -# @param autovacumn_work_mem [String] Similar to but for maintenance_work_mem autovacuum processes only (Example "256MB") +# @param autovacuum_work_mem [String] Similar to but for maintenance_work_mem autovacuum processes only (Example "256MB") # @param autovacuum_max_workers [Integer] Maximum number of autovacuum processes to run concurrently (Default: 3) # class pe_databases::postgresql_settings ( - # lint:ignore:140chars - Float[0,1] $autovacuum_vacuum_scale_factor = 0.08, - Float[0,1] $autovacuum_analyze_scale_factor = 0.04, - Integer $autovacuum_max_workers = max(3, min(8, $facts['processors']['count'] / 3)), - Integer $log_autovacuum_min_duration = -1, - Integer $log_temp_files = -1, - String $work_mem = '8MB', - Integer $max_connections = 1000, - Hash $arbitrary_postgresql_conf_settings = {}, - Float[0,1] $checkpoint_completion_target = 0.9, - Integer $checkpoint_segments = 128, - Boolean $manage_postgresql_service = true, - Boolean $all_in_one_pe_install = true, - Boolean $manage_reports_autovacuum_cost_delay = true, - Optional[Float[0,1]] $factsets_autovacuum_vacuum_scale_factor = 0.80, - Optional[Float[0,1]] $reports_autovacuum_vacuum_scale_factor = 0.01, - String $maintenance_work_mem = $all_in_one_pe_install ? { - false => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 3}MB", - true => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 8}MB", - }, - String $autovacuum_work_mem = $all_in_one_pe_install ? { - false => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 3 / $autovacuum_max_workers}MB", - true => "${facts['memory']['system']['total_bytes'] / 1024 / 1024 / 8 / $autovacuum_max_workers}MB", - }, + Float[0,1] $autovacuum_vacuum_scale_factor = $pe_databases::autovacuum_vacuum_scale_factor, + Float[0,1] $autovacuum_analyze_scale_factor = $pe_databases::autovacuum_analyze_scale_factor, + Integer $autovacuum_max_workers = $pe_databases::autovacuum_max_workers, + Integer $log_autovacuum_min_duration = $pe_databases::log_autovacuum_min_duration, + Integer $log_temp_files = $pe_databases::log_temp_files, + String $work_mem = $pe_databases::work_mem, + Integer $max_connections = $pe_databases::max_connections, + Hash $arbitrary_postgresql_conf_settings = $pe_databases::arbitrary_postgresql_conf_settings, + Float[0,1] $checkpoint_completion_target = $pe_databases::checkpoint_completion_target, + Integer $checkpoint_segments = $pe_databases::checkpoint_segments, + Boolean $manage_postgresql_service = $pe_databases::manage_postgresql_service, + Boolean $all_in_one_pe_install = $pe_databases::all_in_one_pe_install, + Boolean $manage_reports_autovacuum_cost_delay = $pe_databases::manage_reports_autovacuum_cost_delay, + Optional[Float[0,1]] $factsets_autovacuum_vacuum_scale_factor = $pe_databases::factsets_autovacuum_vacuum_scale_factor, + Optional[Float[0,1]] $reports_autovacuum_vacuum_scale_factor = $pe_databases::reports_autovacuum_vacuum_scale_factor, + String $maintenance_work_mem = $pe_databases::maintenance_work_mem, + String $autovacuum_work_mem = $pe_databases::autovacuum_work_mem, String $psql_version = $pe_databases::psql_version, - # lint:endignore ) { $postgresql_service_resource_name = 'postgresqld' $postgresql_service_name = 'pe-postgresql' diff --git a/manifests/postgresql_settings/table_settings.pp b/manifests/postgresql_settings/table_settings.pp index e091fa3..cb71b96 100644 --- a/manifests/postgresql_settings/table_settings.pp +++ b/manifests/postgresql_settings/table_settings.pp @@ -5,11 +5,11 @@ # class pe_databases::postgresql_settings::table_settings ( # lint:ignore:140chars - Boolean $manage_reports_autovacuum_cost_delay = lookup('pe_databases::postgresql_settings::manage_reports_autovacuum_cost_delay', { 'default_value' => true }), - Optional[Float[0,1]] $factsets_autovacuum_vacuum_scale_factor = lookup('pe_databases::postgresql_settings::factsets_autovacuum_vacuum_scale_factor', { 'default_value' => 0.80 }), - Optional[Float[0,1]] $reports_autovacuum_vacuum_scale_factor = lookup('pe_databases::postgresql_settings::reports_autovacuum_vacuum_scale_factor', { 'default_value' => 0.01 }), - Optional[Float[0,1]] $catalogs_autovacuum_vacuum_scale_factor = 0.75, - Optional[Float[0,1]] $certnames_autovacuum_vacuum_scale_factor = 0.75, + Boolean $manage_reports_autovacuum_cost_delay = $pe_databases::manage_reports_autovacuum_cost_delay, + Optional[Float[0,1]] $factsets_autovacuum_vacuum_scale_factor = $pe_databases::factsets_autovacuum_vacuum_scale_factor, + Optional[Float[0,1]] $reports_autovacuum_vacuum_scale_factor = $pe_databases::reports_autovacuum_vacuum_scale_factor, + Optional[Float[0,1]] $catalogs_autovacuum_vacuum_scale_factor = $pe_databases::catalogs_autovacuum_vacuum_scale_factor, + Optional[Float[0,1]] $certnames_autovacuum_vacuum_scale_factor = $pe_databases::certnames_autovacuum_vacuum_scale_factor, # lint:endignore ) { if $manage_reports_autovacuum_cost_delay {