From 477abea5608531ae0b29d468e8fdce10b1bcd528 Mon Sep 17 00:00:00 2001 From: Drew Griffin Date: Wed, 12 Oct 2016 12:37:52 -0400 Subject: [PATCH] Add ability to set package version and use --- CHANGELOG.md | 1 + manifests/check_and_install_package.pp | 5 +++-- manifests/plugins/aggregation.pp | 3 +++ manifests/plugins/apache.pp | 7 ++++++- manifests/plugins/cassandra.pp | 6 ++++++ manifests/plugins/docker.pp | 7 ++++++- manifests/plugins/elasticsearch.pp | 7 ++++++- manifests/plugins/iostat.pp | 7 ++++++- manifests/plugins/java.pp | 7 ++++++- manifests/plugins/kafka.pp | 6 ++++++ manifests/plugins/memcached.pp | 7 ++++++- manifests/plugins/mesos.pp | 6 ++++++ manifests/plugins/mongodb.pp | 7 ++++++- manifests/plugins/mysql.pp | 7 ++++++- manifests/plugins/nginx.pp | 7 ++++++- manifests/plugins/plugin_common.pp | 11 +++++++---- manifests/plugins/postgresql.pp | 7 ++++++- manifests/plugins/rabbitmq.pp | 7 ++++++- manifests/plugins/redis.pp | 7 ++++++- manifests/plugins/varnish.pp | 7 ++++++- manifests/plugins/vmstat.pp | 7 ++++++- manifests/plugins/zookeeper.pp | 7 ++++++- metadata.json | 2 +- 23 files changed, 123 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10f2ddd..b2a987c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Release 0.1.10 * Allow setting github repo revision to pull from in get_from_github * Standardize all plugin templates to use modules parameter * Introduce ability to set template location + * Introduce ability to set package version and use Release 0.1.9 * Fix for vmstat plugin to support RHEL diff --git a/manifests/check_and_install_package.pp b/manifests/check_and_install_package.pp index 38001f9..004b427 100644 --- a/manifests/check_and_install_package.pp +++ b/manifests/check_and_install_package.pp @@ -1,11 +1,12 @@ # Checks if a package is defined and install otherwise # define collectd::check_and_install_package( - $package_name = $title + $package_name = $title, + $package_ensure = present, ) { if(!defined(Package[$package_name])){ package { $package_name: - ensure => present, + ensure => $package_ensure, require => Class['collectd::get_signalfx_repository'] } } diff --git a/manifests/plugins/aggregation.pp b/manifests/plugins/aggregation.pp index 43c2563..baf42fb 100644 --- a/manifests/plugins/aggregation.pp +++ b/manifests/plugins/aggregation.pp @@ -5,6 +5,9 @@ include collectd collectd::plugins::plugin_common { 'aggregation': + package_name => 'UNSET', + package_ensure => present, + package_required => false, plugin_file_name => '10-aggregation-cpu.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/apache.pp b/manifests/plugins/apache.pp index f2232af..f160e48 100644 --- a/manifests/plugins/apache.pp +++ b/manifests/plugins/apache.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/apache/10-apache.conf.erb', + $package_name = 'collectd-apache', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'apache': - package_name => 'collectd-apache', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-apache.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/cassandra.pp b/manifests/plugins/cassandra.pp index 578fa1f..ae0be81 100644 --- a/manifests/plugins/cassandra.pp +++ b/manifests/plugins/cassandra.pp @@ -1,6 +1,9 @@ class collectd::plugins::cassandra ( $modules, $plugin_template = 'collectd/plugins/cassandra/20-cassandra.conf.erb', + $package_name = 'UNSET', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -8,6 +11,9 @@ include collectd::plugins::java collectd::plugins::plugin_common { 'cassandra': + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '20-cassandra.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/docker.pp b/manifests/plugins/docker.pp index 4ffb899..6c3d143 100644 --- a/manifests/plugins/docker.pp +++ b/manifests/plugins/docker.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/docker/10-docker.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -55,7 +58,9 @@ } collectd::plugins::plugin_common { 'docker': - package_name => 'collectd-docker', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-docker.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/elasticsearch.pp b/manifests/plugins/elasticsearch.pp index c76a56a..2f3aebe 100644 --- a/manifests/plugins/elasticsearch.pp +++ b/manifests/plugins/elasticsearch.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/elasticsearch/20-elasticsearch.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -27,7 +30,9 @@ } collectd::plugins::plugin_common { 'elasticsearch': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '20-elasticsearch.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/iostat.pp b/manifests/plugins/iostat.pp index 632dc43..daf4ac4 100644 --- a/manifests/plugins/iostat.pp +++ b/manifests/plugins/iostat.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/iostat/10-iostat.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -39,7 +42,9 @@ } collectd::plugins::plugin_common { 'iostat': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-iostat.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/java.pp b/manifests/plugins/java.pp index 7294e37..d6d0a44 100644 --- a/manifests/plugins/java.pp +++ b/manifests/plugins/java.pp @@ -1,5 +1,8 @@ class collectd::plugins::java ( $plugin_template = 'collectd/plugins/java/10-jmx.conf.erb', + $package_name = 'collectd-java', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd @@ -23,7 +26,9 @@ } collectd::plugins::plugin_common { 'java': - package_name => 'collectd-java', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-jmx.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/kafka.pp b/manifests/plugins/kafka.pp index d755440..e4ec358 100644 --- a/manifests/plugins/kafka.pp +++ b/manifests/plugins/kafka.pp @@ -1,6 +1,9 @@ class collectd::plugins::kafka ( $modules, $plugin_template = 'collectd/plugins/kafka/20-kafka.conf.erb', + $package_name = 'UNSET', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -8,6 +11,9 @@ include collectd::plugins::java collectd::plugins::plugin_common { 'kafka': + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '20-kafka.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/memcached.pp b/manifests/plugins/memcached.pp index f512200..5c79c86 100644 --- a/manifests/plugins/memcached.pp +++ b/manifests/plugins/memcached.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/memcached/10-memcached.conf.erb', + $package_name = 'UNSET', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'memcached': - package_name => 'collectd-memcached', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-memcached.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/mesos.pp b/manifests/plugins/mesos.pp index c661cba..d5e206d 100644 --- a/manifests/plugins/mesos.pp +++ b/manifests/plugins/mesos.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/mesos/10-mesos-master.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -38,6 +41,9 @@ } collectd::plugins::plugin_common { 'mesos': + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-mesos-master.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/mongodb.pp b/manifests/plugins/mongodb.pp index 9799061..822486f 100644 --- a/manifests/plugins/mongodb.pp +++ b/manifests/plugins/mongodb.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/mongodb/10-mongodb.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -44,7 +47,9 @@ } collectd::plugins::plugin_common { 'mongodb': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-mongodb.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/mysql.pp b/manifests/plugins/mysql.pp index ba91d38..bd680b6 100644 --- a/manifests/plugins/mysql.pp +++ b/manifests/plugins/mysql.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/mysql/mysql.conf.erb', + $package_name = 'collectd-mysql', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'mysql': - package_name => 'collectd-mysql', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-mysql.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/nginx.pp b/manifests/plugins/nginx.pp index e25b549..36acd46 100644 --- a/manifests/plugins/nginx.pp +++ b/manifests/plugins/nginx.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/nginx/10-nginx.conf.erb', + $package_name = 'collectd-nginx', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'nginx': - package_name => 'collectd-nginx', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-nginx.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/plugin_common.pp b/manifests/plugins/plugin_common.pp index b57e1fa..fc74ab1 100644 --- a/manifests/plugins/plugin_common.pp +++ b/manifests/plugins/plugin_common.pp @@ -3,15 +3,18 @@ define collectd::plugins::plugin_common ( $plugin_file_name, $plugin_template, - $package_name = 'UNSET' + $package_name = 'UNSET', + $package_ensure = present, + $package_required = false, ){ validate_string($plugin_file_name) validate_string($plugin_template) - if $::osfamily == 'RedHat' and $package_name != 'UNSET' { + if $package_name != 'UNSET' and $package_required == true { collectd::check_and_install_package { "${package_name} for ${plugin_file_name}": - package_name => $package_name, - before => File["load ${plugin_file_name} plugin"] + package_name => $package_name, + package_ensure => $package_ensure, + before => File["load ${plugin_file_name} plugin"] } } diff --git a/manifests/plugins/postgresql.pp b/manifests/plugins/postgresql.pp index 81d7a6e..b67f438 100644 --- a/manifests/plugins/postgresql.pp +++ b/manifests/plugins/postgresql.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/postgresql/10-postgresql.conf.erb', + $package_name = 'collectd-postgresql', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'postgresql': - package_name => 'collectd-postgresql', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-postgresql.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/rabbitmq.pp b/manifests/plugins/rabbitmq.pp index 892dd26..1fa2cd3 100644 --- a/manifests/plugins/rabbitmq.pp +++ b/manifests/plugins/rabbitmq.pp @@ -5,6 +5,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/rabbitmq/rabbitmq.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] } @@ -15,7 +18,9 @@ source => 'https://github.com/signalfx/collectd-rabbitmq' } -> collectd::plugins::plugin_common { 'rabbitmq': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-rabbitmq.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/redis.pp b/manifests/plugins/redis.pp index 20259df..847e004 100644 --- a/manifests/plugins/redis.pp +++ b/manifests/plugins/redis.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/redis/10-redis_master.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -27,7 +30,9 @@ } collectd::plugins::plugin_common { 'redis': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-redis_master.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/varnish.pp b/manifests/plugins/varnish.pp index 363abae..38426f8 100644 --- a/manifests/plugins/varnish.pp +++ b/manifests/plugins/varnish.pp @@ -3,13 +3,18 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/varnish/10-varnish.conf.erb', + $package_name = 'collectd-varnish', + $package_ensure = present, + $package_required = ($::osfamily == 'RedHat') ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } include collectd collectd::plugins::plugin_common { 'varnish': - package_name => 'collectd-varnish', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-varnish.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/vmstat.pp b/manifests/plugins/vmstat.pp index cf6ff3e..efbce66 100644 --- a/manifests/plugins/vmstat.pp +++ b/manifests/plugins/vmstat.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/vmstat/10-vmstat.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -39,7 +42,9 @@ } collectd::plugins::plugin_common { 'vmstat': - package_name => 'collectd-python', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '10-vmstat.conf', plugin_template => $plugin_template, } diff --git a/manifests/plugins/zookeeper.pp b/manifests/plugins/zookeeper.pp index 9ba649b..8c663d5 100644 --- a/manifests/plugins/zookeeper.pp +++ b/manifests/plugins/zookeeper.pp @@ -3,6 +3,9 @@ $filter_metrics = false, $filter_metric_rules = {}, $plugin_template = 'collectd/plugins/zookeeper/20-zookeeper.conf.erb', + $package_name = 'collectd-python', + $package_ensure = present, + $package_required = false ) { validate_hash($modules) Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] } @@ -27,7 +30,9 @@ } collectd::plugins::plugin_common { 'zookeeper': - package_name => 'collectd-zookeeper', + package_name => $package_name, + package_ensure => $package_ensure, + package_required => $package_required, plugin_file_name => '20-zookeeper.conf', plugin_template => $plugin_template, } diff --git a/metadata.json b/metadata.json index dc49dfe..823d14d 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "signalfx-collectd", - "version": "0.1.9", + "version": "0.1.10", "author": "Uday Sagar Shiramshetty", "summary": "A puppet module that configures complete collectd from SignalFx", "license": "Apache-2.0",