Skip to content

Commit

Permalink
Allow a hash of metrics server information
Browse files Browse the repository at this point in the history
Previously, we only allowed passing an influxdb host but you may
want to pass a port or a different database type for influx.

Additionally, you may prefer to ship to graphite.

You can now do any of these by using the correct
metrics_server_info hash.
  • Loading branch information
npwalker committed Feb 6, 2018
1 parent ba8786d commit 60e161a
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 8 deletions.
2 changes: 1 addition & 1 deletion manifests/activemq.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
String $metrics_ensure = $::pe_metric_curl_cron_jobs::activemq_metrics_ensure,
Array[String] $hosts = $::pe_metric_curl_cron_jobs::activemq_hosts,
Integer $port = $::pe_metric_curl_cron_jobs::activemq_port,
Optional[String] $influxdb_host = $::pe_metric_curl_cron_jobs::influxdb_host,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = $::pe_metric_curl_cron_jobs::metrics_server_info,
) {
$scripts_dir = $::pe_metric_curl_cron_jobs::scripts_dir

Expand Down
2 changes: 1 addition & 1 deletion manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
Array[String] $activemq_hosts = [ '127.0.0.1' ],
Integer $activemq_port = 8161,
Boolean $symlink_puppet_metrics_collector = true,
Optional[String] $influxdb_host = undef,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = undef,
) {
$scripts_dir = "${output_dir}/scripts"
$bin_dir = "${output_dir}/bin"
Expand Down
2 changes: 1 addition & 1 deletion manifests/orchestrator.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
String $metrics_ensure = $::pe_metric_curl_cron_jobs::orchestrator_metrics_ensure,
Array[String] $hosts = $::pe_metric_curl_cron_jobs::orchestrator_hosts,
Integer $port = $::pe_metric_curl_cron_jobs::orchestrator_port,
Optional[String] $influxdb_host = $::pe_metric_curl_cron_jobs::influxdb_host,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = $::pe_metric_curl_cron_jobs::metrics_server_info,
) {
Pe_metric_curl_cron_jobs::Pe_metric {
output_dir => $::pe_metric_curl_cron_jobs::output_dir,
Expand Down
26 changes: 23 additions & 3 deletions manifests/pe_metric.pp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
String $metric_script_file = 'tk_metrics',
Array[Hash] $additional_metrics = [],
Boolean $ssl = true,
Optional[String] $influxdb_host = undef,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = undef,
) {

$metrics_output_dir = "${output_dir}/${metrics_type}"
Expand Down Expand Up @@ -43,8 +43,28 @@

$metrics_base_command = "${script_file_name} --metrics_type ${metrics_type} --output-dir ${metrics_output_dir}"

if !empty($influxdb_host) {
$metrics_command = "${metrics_base_command} | ${conversion_script_file_name} --netcat ${influxdb_host} --convert-to influxdb --influx-db pe_metrics"
$metrics_server_hostname = $metrics_server_info['hostname']
$metrics_server_port = $metrics_server_info['port']
$metrics_server_type = $metrics_server_info['metrics_server_type']
$metrics_server_db = $metrics_server_info['db_name']

if empty($metrics_server_db) and $metrics_server_type == 'influxdb' {
fail( 'When using an influxdb server you must provide the db_name to store metrics in' )
}

if !empty($metrics_server_info) {
$local_metrics_command = "${metrics_base_command} | ${conversion_script_file_name} --netcat ${metrics_server_hostname} --convert-to ${metrics_server_type}"

$port_metrics_command = empty($metrics_server_port) ? {
false => "${local_metrics_command} --port ${metrics_server_port}",
true => $local_metrics_command,
}

$metrics_command = $metrics_server_type ? {
'influxdb' => "${port_metrics_command} --influx-db ${metrics_server_db}",
'graphite' => $port_metrics_command,
default => $port_metrics_command,
}
} else {
$metrics_command = "${metrics_base_command} --no-print"
}
Expand Down
2 changes: 1 addition & 1 deletion manifests/puppetdb.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
String $metrics_ensure = $::pe_metric_curl_cron_jobs::puppetdb_metrics_ensure,
Array[String] $hosts = $::pe_metric_curl_cron_jobs::puppetdb_hosts,
Integer $port = $::pe_metric_curl_cron_jobs::puppetdb_port,
Optional[String] $influxdb_host = $::pe_metric_curl_cron_jobs::influxdb_host,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = $::pe_metric_curl_cron_jobs::metrics_server_info,
) {
Pe_metric_curl_cron_jobs::Pe_metric {
output_dir => $::pe_metric_curl_cron_jobs::output_dir,
Expand Down
2 changes: 1 addition & 1 deletion manifests/puppetserver.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
String $metrics_ensure = $::pe_metric_curl_cron_jobs::puppetserver_metrics_ensure,
Array[String] $hosts = $::pe_metric_curl_cron_jobs::puppetserver_hosts,
Integer $port = $::pe_metric_curl_cron_jobs::puppetserver_port,
Optional[String] $influxdb_host = $::pe_metric_curl_cron_jobs::influxdb_host,
Optional[Pe_metric_curl_cron_jobs::Metrics_server] $metrics_server_info = $::pe_metric_curl_cron_jobs::metrics_server_info,
) {
Pe_metric_curl_cron_jobs::Pe_metric {
output_dir => $::pe_metric_curl_cron_jobs::output_dir,
Expand Down
6 changes: 6 additions & 0 deletions types/metrics_server.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
type Pe_metric_curl_cron_jobs::Metrics_server = Struct[{
metrics_server_type => Enum['influxdb','graphite'],
hostname => String,
port => Integer,
db_name => String,
}]

0 comments on commit 60e161a

Please sign in to comment.