From 9a18f5a33057aeb76e38251262bb727c3ebbef6c Mon Sep 17 00:00:00 2001 From: Alexander Fisher Date: Mon, 21 Feb 2022 10:16:53 +0000 Subject: [PATCH 1/2] Change server_puppetserver_profiler default to true Puppet Inc. enabled the profiler by default in Puppetserver 5.0.0 https://tickets.puppetlabs.com/browse/SERVER-1761 This module has been disabling by default though causing users to be missing metrics they might reasonably expect to be present after reading through the [Puppetserver documentation](https://puppet.com/docs/puppet/6/server/puppet_server_metrics.html#compiler-metrics). --- manifests/init.pp | 5 +++-- spec/classes/puppet_server_puppetserver_spec.rb | 12 ++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 3b242580..05f80464 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -442,7 +442,8 @@ # Defaults to false because that's the Puppet Inc. default behaviour. # # $server_puppetserver_profiler:: Enable JRuby profiling. -# Defaults to false because that's the Puppet Inc. default behaviour. +# Defaults to true because that's the Puppet Inc. default behaviour (since Puppetserver 5.0.0). +# If set to false, compiler and function metrics will not be available, (eg. when enabling graphite metrics) # # $server_metrics_jmx_enable:: Enable or disable JMX metrics reporter. Defaults to true # @@ -708,7 +709,7 @@ Boolean $server_allow_header_cert_info = $puppet::params::server_allow_header_cert_info, Integer[0] $server_web_idle_timeout = $puppet::params::server_web_idle_timeout, Boolean $server_puppetserver_metrics = false, - Boolean $server_puppetserver_profiler = false, + Boolean $server_puppetserver_profiler = true, Boolean $server_metrics_jmx_enable = $puppet::params::server_metrics_jmx_enable, Boolean $server_metrics_graphite_enable = $puppet::params::server_metrics_graphite_enable, String $server_metrics_graphite_host = $puppet::params::server_metrics_graphite_host, diff --git a/spec/classes/puppet_server_puppetserver_spec.rb b/spec/classes/puppet_server_puppetserver_spec.rb index b22ce935..18ae6182 100644 --- a/spec/classes/puppet_server_puppetserver_spec.rb +++ b/spec/classes/puppet_server_puppetserver_spec.rb @@ -273,7 +273,7 @@ it { should contain_file(puppetserver_conf) .with_content(/^ # Whether to enable http-client metrics; defaults to 'true'.\n metrics-enabled: true$(.*)/) - .with_content(/^profiler: \{\n # enable or disable profiling for the Ruby code;\n enabled: false/) + .with_content(/^profiler: \{\n # enable or disable profiling for the Ruby code;\n enabled: true/) } it { should contain_file('/etc/custom/puppetserver/conf.d/metrics.conf') @@ -292,10 +292,18 @@ it { should contain_file(puppetserver_conf) .with_content(/^ # Whether to enable http-client metrics; defaults to 'true'.\n metrics-enabled: false$/) - .with_content(/^profiler: \{\n # enable or disable profiling for the Ruby code;\n enabled: false/) + .with_content(/^profiler: \{\n # enable or disable profiling for the Ruby code;\n enabled: true/) } it { should contain_file('/etc/custom/puppetserver/conf.d/metrics.conf').with_ensure('file') } end + + context 'when server_profiler => false' do + let(:params) { super().merge(server_puppetserver_profiler: false) } + it { + should contain_file(puppetserver_conf) + .with_content(/^profiler: \{\n # enable or disable profiling for the Ruby code;\n enabled: false/) + } + end end describe 'server_experimental' do From 0b9139a55f15597c18d71ea5585257a206356a1d Mon Sep 17 00:00:00 2001 From: Alexander Fisher Date: Fri, 25 Feb 2022 17:44:39 +0000 Subject: [PATCH 2/2] Change server_puppetserver_metrics default to true The default in Puppetserver is actually `true`, not `false`. (IMO, `server_puppetserver_metrics` isn't a great parameter name as its actual purpose is to configure whether http client metrics are collected, and has no impact on the much greater number of other metrics still collected when this is set to `false`.) --- manifests/init.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 05f80464..250c7634 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -439,10 +439,10 @@ # Defaults to 30000, using the Jetty default of 30s # # $server_puppetserver_metrics:: Enable puppetserver http-client metrics -# Defaults to false because that's the Puppet Inc. default behaviour. +# Defaults to true, matching defaults in Puppetserver 5+. # # $server_puppetserver_profiler:: Enable JRuby profiling. -# Defaults to true because that's the Puppet Inc. default behaviour (since Puppetserver 5.0.0). +# Defaults to true, matching defaults in Puppetserver 5+. # If set to false, compiler and function metrics will not be available, (eg. when enabling graphite metrics) # # $server_metrics_jmx_enable:: Enable or disable JMX metrics reporter. Defaults to true @@ -708,7 +708,7 @@ Boolean $server_environment_class_cache_enabled = $puppet::params::server_environment_class_cache_enabled, Boolean $server_allow_header_cert_info = $puppet::params::server_allow_header_cert_info, Integer[0] $server_web_idle_timeout = $puppet::params::server_web_idle_timeout, - Boolean $server_puppetserver_metrics = false, + Boolean $server_puppetserver_metrics = true, Boolean $server_puppetserver_profiler = true, Boolean $server_metrics_jmx_enable = $puppet::params::server_metrics_jmx_enable, Boolean $server_metrics_graphite_enable = $puppet::params::server_metrics_graphite_enable,