diff --git a/lib/puppet/reports/graphite.rb b/lib/puppet/reports/graphite.rb index a5a670c..581b1a4 100644 --- a/lib/puppet/reports/graphite.rb +++ b/lib/puppet/reports/graphite.rb @@ -13,6 +13,7 @@ GRAPHITE_PREFIX = config[:graphite_prefix] GRAPHITE_SUFFIX = config[:graphite_suffix] GRAPHITE_REVERSE_HOSTNAME = config[:graphite_reverse_hostname] + GRAPHITE_FLATTEN_HOSTNAME = config[:graphite_flatten_hostname] desc <<-DESC Send notification of failed reports to a Graphite server via socket. @@ -33,12 +34,16 @@ def process prefix_parts.push GRAPHITE_PREFIX end + hostname = self.host if GRAPHITE_REVERSE_HOSTNAME - prefix_parts.push self.host.split(".").reverse.join(".") - else - prefix_parts.push self.host + hostname = hostname.split(".").reverse.join(".") end + if GRAPHITE_FLATTEN_HOSTNAME + hostname = hostname.gsub(".", "_") + end + prefix_parts.push hostname + if GRAPHITE_SUFFIX != nil prefix_parts.push GRAPHITE_SUFFIX end diff --git a/manifests/init.pp b/manifests/init.pp index 69e8b6b..6f4b2d0 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -25,6 +25,21 @@ # String. The config file's group. Should be pe_puppet for Puppet Enterprise. # Default: puppet # +# [*graphite_prefix*] +# String. Prefix to use for graphite metrics. +# Default: undef +# +# [*graphite_suffix*] +# String. Suffix to use for graphite metrics. +# Default: puppet +# +# [*graphite_reverse_hostname*] +# Bool. Reverse the components of the fqdn in the graphite metrics. +# Default: true +# +# [*graphite_flatten_hostname*] +# Bool. Replace all dot ('.') characters in the fqdn with underscores ('_'). +# Default: false # # === Examples # @@ -41,15 +56,15 @@ # # class graphite_reporter ( - $graphite_host = $graphite_reporter::params::graphite_host, - $graphite_port = $graphite_reporter::params::graphite_port, - $config_file = $graphite_reporter::params::config_file, - $config_owner = $graphite_reporter::params::config_owner, - $config_group = $graphite_reporter::params::config_group, - + $graphite_host = $graphite_reporter::params::graphite_host, + $graphite_port = $graphite_reporter::params::graphite_port, + $config_file = $graphite_reporter::params::config_file, + $config_owner = $graphite_reporter::params::config_owner, + $config_group = $graphite_reporter::params::config_group, $graphite_prefix = $graphite_reporter::params::graphite_prefix, $graphite_suffix = $graphite_reporter::params::graphite_suffix, $graphite_reverse_hostname = $graphite_reporter::params::graphite_reverse_hostname, + $graphite_flatten_hostname = $graphite_reporter::params::graphite_flatten_hostname, ) inherits graphite_reporter::params { file { $config_file: diff --git a/manifests/params.pp b/manifests/params.pp index f405c67..f22e25c 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -9,6 +9,7 @@ $graphite_prefix = undef $graphite_suffix = 'puppet' $graphite_reverse_hostname = true + $graphite_flatten_hostname = false if str2bool($::is_pe) { $config_file = '/etc/puppetlabs/puppet/graphite.yaml' diff --git a/templates/graphite.yaml.erb b/templates/graphite.yaml.erb index 3f66094..ca071d0 100644 --- a/templates/graphite.yaml.erb +++ b/templates/graphite.yaml.erb @@ -4,3 +4,4 @@ :graphite_prefix: <%= scope.lookupvar('graphite_prefix') %> :graphite_suffix: <%= scope.lookupvar('graphite_suffix') %> :graphite_reverse_hostname: <%= scope.lookupvar('graphite_reverse_hostname') %> +:graphite_flatten_hostname: <%= scope.lookupvar('graphite_flatten_hostname') %>