Eevans has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/378100 )
Change subject: WIP: Disable cassandra-metrics-collector when Prometheus agent is enabled ...................................................................... WIP: Disable cassandra-metrics-collector when Prometheus agent is enabled Moves the `jmx_exporter_enabled` variable up to the cassandra class where it can be assigned once for a cluster, and then passed into `cassandra::metrics` to disable the systemd unit. Bug: T171772 Change-Id: I3ce1a963df3ca89c7a119675820d95c27934aaf9 --- M hieradata/role/common/restbase/dev_cluster.yaml M hieradata/role/common/restbase/production_ng.yaml M hieradata/role/common/restbase/test_cluster.yaml M modules/cassandra/manifests/init.pp M modules/cassandra/manifests/instance.pp M modules/cassandra/manifests/metrics.pp M modules/profile/manifests/cassandra.pp 7 files changed, 22 insertions(+), 29 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/00/378100/1 diff --git a/hieradata/role/common/restbase/dev_cluster.yaml b/hieradata/role/common/restbase/dev_cluster.yaml index 25b274e..98f6e94 100644 --- a/hieradata/role/common/restbase/dev_cluster.yaml +++ b/hieradata/role/common/restbase/dev_cluster.yaml @@ -89,7 +89,6 @@ - /srv/cassandra-a/data_1 - /srv/cassandra-a/data_2 - /srv/cassandra-a/data_3 - jmx_exporter_enabled: true b: listen_address: 10.64.0.168 data_file_directories: @@ -97,33 +96,28 @@ - /srv/cassandra-b/data_1 - /srv/cassandra-b/data_2 - /srv/cassandra-b/data_3 - jmx_exporter_enabled: true "restbase-dev1005.eqiad.wmnet": a: listen_address: 10.64.16.97 data_file_directories: - /srv/cassandra-a/data_0 - /srv/cassandra-a/data_1 - jmx_exporter_enabled: true b: listen_address: 10.64.16.98 data_file_directories: - /srv/cassandra-b/data_0 - /srv/cassandra-b/data_1 - jmx_exporter_enabled: true "restbase-dev1006.eqiad.wmnet": a: listen_address: 10.64.48.168 data_file_directories: - /srv/cassandra-a/data_0 - /srv/cassandra-a/data_1 - jmx_exporter_enabled: true b: listen_address: 10.64.48.169 data_file_directories: - /srv/cassandra-b/data_0 - /srv/cassandra-b/data_1 - jmx_exporter_enabled: true profile::cassandra::settings: start_rpc: 'true' @@ -147,6 +141,7 @@ internode_encryption: dc permissions_validity_in_ms: 600000 trickle_fsync: false + jmx_exporter_enabled: true service::configuration::log_dir: "/var/log" diff --git a/hieradata/role/common/restbase/production_ng.yaml b/hieradata/role/common/restbase/production_ng.yaml index 7c8c7e2..8ca3f7f 100644 --- a/hieradata/role/common/restbase/production_ng.yaml +++ b/hieradata/role/common/restbase/production_ng.yaml @@ -54,7 +54,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.64.32.195 data_file_directories: @@ -67,7 +66,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.64.32.196 data_file_directories: @@ -80,7 +78,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true "restbase1009.eqiad.wmnet": a: listen_address: 10.64.48.120 @@ -94,7 +91,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.64.48.130 data_file_directories: @@ -107,7 +103,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.64.48.131 data_file_directories: @@ -120,7 +115,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true "restbase1010.eqiad.wmnet": a: listen_address: 10.64.0.114 @@ -134,7 +128,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.64.0.115 data_file_directories: @@ -147,7 +140,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.64.0.116 data_file_directories: @@ -160,7 +152,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true "restbase2001.codfw.wmnet": a: listen_address: 10.192.16.162 @@ -174,7 +165,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.192.16.163 data_file_directories: @@ -187,7 +177,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.192.16.164 data_file_directories: @@ -200,7 +189,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true "restbase2003.codfw.wmnet": a: listen_address: 10.192.32.134 @@ -214,7 +202,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.192.32.135 data_file_directories: @@ -227,7 +214,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.192.32.136 data_file_directories: @@ -240,7 +226,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true "restbase2005.codfw.wmnet": a: listen_address: 10.192.48.46 @@ -254,7 +239,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-a/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-a/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-a/saved_caches - jmx_exporter_enabled: true b: listen_address: 10.192.48.47 data_file_directories: @@ -267,7 +251,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-b/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-b/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-b/saved_caches - jmx_exporter_enabled: true c: listen_address: 10.192.48.48 data_file_directories: @@ -280,7 +263,6 @@ commitlog_directory: /srv/cassandra/instance-data/cassandra-c/commitlog hints_directory: /srv/cassandra/instance-data/cassandra-c/hints saved_caches_directory: /srv/cassandra/instance-data/cassandra-c/saved_caches - jmx_exporter_enabled: true profile::cassandra::settings: @@ -304,6 +286,7 @@ trickle_fsync: false client_encryption_enabled: true disk_failure_policy: best_effort + jmx_exporter_enabled: true # diff --git a/hieradata/role/common/restbase/test_cluster.yaml b/hieradata/role/common/restbase/test_cluster.yaml index 9b73a48..bc4358c 100644 --- a/hieradata/role/common/restbase/test_cluster.yaml +++ b/hieradata/role/common/restbase/test_cluster.yaml @@ -78,15 +78,12 @@ "cerium.eqiad.wmnet": a: listen_address: 10.64.16.153 - jmx_exporter_enabled: true "praseodymium.eqiad.wmnet": a: listen_address: 10.64.16.188 - jmx_exporter_enabled: true "xenon.eqiad.wmnet": a: listen_address: 10.64.0.202 - jmx_exporter_enabled: true "restbase-test2001.codfw.wmnet": a: listen_address: 10.192.16.154 @@ -126,6 +123,7 @@ permissions_validity_in_ms: 600000 trickle_fsync: false client_encryption_enabled: true + jmx_exporter_enabled: true service::configuration::log_dir: "/var/log" diff --git a/modules/cassandra/manifests/init.pp b/modules/cassandra/manifests/init.pp index bad7df4..a168a23 100644 --- a/modules/cassandra/manifests/init.pp +++ b/modules/cassandra/manifests/init.pp @@ -113,6 +113,9 @@ # Cassandra superuser password. # Default: cassandra # +# [*jmx_exporter_enabled*] +# Whether or not to enable the Prometheus JMX exporter agent. +# Default: false class cassandra ( $cluster_name = 'Test Cluster', $tls_cluster_name = undef, @@ -135,6 +138,7 @@ $jbod_devices = [], $super_username = 'cassandra', $super_password = 'cassandra', + $jmx_exporter_enabled = false, ) { validate_string($cluster_name) @@ -201,6 +205,7 @@ start_rpc => $start_rpc, super_username => $super_username, super_password => $super_password, + jmx_exporter_enabled => $jmx_exporter_enabled } if empty($instances) { diff --git a/modules/cassandra/manifests/instance.pp b/modules/cassandra/manifests/instance.pp index 955d16f..8a4c7f0 100644 --- a/modules/cassandra/manifests/instance.pp +++ b/modules/cassandra/manifests/instance.pp @@ -195,6 +195,7 @@ $start_rpc, $super_username, $super_password, + $jmx_exporter_enabled, # the following parameters need specific default values for single instance $config_directory = "/etc/cassandra-${title}", @@ -213,7 +214,6 @@ # the following parameters have defaults that are sane both for single- # and multi-instances - $jmx_exporter_enabled = false, $num_tokens = 256, $authenticator = true, $authorizor = true, diff --git a/modules/cassandra/manifests/metrics.pp b/modules/cassandra/manifests/metrics.pp index 84bb372..ae5fb3d 100644 --- a/modules/cassandra/manifests/metrics.pp +++ b/modules/cassandra/manifests/metrics.pp @@ -24,6 +24,10 @@ # [*whitelist*] # Array of strings, each is a regular expression of metric names to whitelist # (i.e. send to graphite, even if matched by a blacklist entry) +# +# [*enabled*] +# Whether to enable Graphite metrics collection +# Default: true class cassandra::metrics( $graphite_prefix = "cassandra.${::hostname}", @@ -31,6 +35,7 @@ $graphite_port = '2003', $blacklist = undef, $whitelist = undef, + $enabled = true, ) { validate_string($graphite_prefix) validate_string($graphite_host) @@ -96,8 +101,14 @@ user => 'cassandra', } + if $enabled { + $ensure = present + } else { + $ensure = absent + } + systemd::service { 'cassandra-metrics-collector': - ensure => present, + ensure => $ensure, content => systemd_template('cassandra-metrics-collector'), restart => true, require => [ diff --git a/modules/profile/manifests/cassandra.pp b/modules/profile/manifests/cassandra.pp index 217724d..90089bc 100644 --- a/modules/profile/manifests/cassandra.pp +++ b/modules/profile/manifests/cassandra.pp @@ -32,6 +32,7 @@ graphite_host => $graphite_host, whitelist => $metrics_whitelist, blacklist => $metrics_blacklist, + enabled => $cassandra_settings['jmx_exporter_enabled'], } class { '::cassandra::logging': } class { '::cassandra::twcs': } -- To view, visit https://gerrit.wikimedia.org/r/378100 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3ce1a963df3ca89c7a119675820d95c27934aaf9 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Eevans <eev...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits