Elukey has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/394966 )
Change subject: [WIP] role::puppetmaster::puppetdb: add Prometheus monitoring for puppetdb ...................................................................... [WIP] role::puppetmaster::puppetdb: add Prometheus monitoring for puppetdb Change-Id: I58f036e85edb98ef4170580d093c42f0bc8ef786 --- A modules/profile/files/puppetmaster/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml A modules/profile/manifests/puppetmaster/puppetdb/monitoring.pp M modules/puppetdb/manifests/app.pp M modules/puppetdb/templates/puppetdb.service.erb M modules/role/manifests/puppetmaster/puppetdb.pp 5 files changed, 32 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/66/394966/1 diff --git a/modules/profile/files/puppetmaster/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml b/modules/profile/files/puppetmaster/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml new file mode 100644 index 0000000..73530b2 --- /dev/null +++ b/modules/profile/files/puppetmaster/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml @@ -0,0 +1,3 @@ +--- +lowercaseOutputLabelNames: true +lowercaseOutputName: false \ No newline at end of file diff --git a/modules/profile/manifests/puppetmaster/puppetdb/monitoring.pp b/modules/profile/manifests/puppetmaster/puppetdb/monitoring.pp new file mode 100644 index 0000000..7766ef2 --- /dev/null +++ b/modules/profile/manifests/puppetmaster/puppetdb/monitoring.pp @@ -0,0 +1,20 @@ +# Class: profile::puppetmaster::puppetdb::monitoring +# +# Sets up Prometheus based monitoring (only jvm) for the PuppetDB JVM. +# +class profile::puppetmaster::puppetdb::monitoring( + $prometheus_nodes = hiera('prometheus_nodes'), +) { + # Prometheus JMX agent for the Puppetdb's JVM + $jmx_exporter_config_file = '/etc/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml' + $prometheus_jmx_exporter_port = 8181 + $prometheus_java_opts = "-javaagent:/usr/share/java/prometheus/jmx_prometheus_javaagent.jar=${::ipaddress}:${prometheus_jmx_exporter_port}:${jmx_exporter_config_file}" + profile::prometheus::jmx_exporter { "puppetdb_${::hostname}": + hostname => $::hostname, + port => $prometheus_jmx_exporter_port, + prometheus_nodes => $prometheus_nodes, + config_file => $jmx_exporter_config_file, + source => 'puppet:///modules/profile/puppetmaster/puppetdb/jvm_prometheus_puppetdb_jmx_exporter.yaml', + require => File['/etc/puppetdb'], + } +} \ No newline at end of file diff --git a/modules/puppetdb/manifests/app.pp b/modules/puppetdb/manifests/app.pp index 8ef5a79..c58e205 100644 --- a/modules/puppetdb/manifests/app.pp +++ b/modules/puppetdb/manifests/app.pp @@ -11,7 +11,7 @@ $db_user='puppetdb', $db_password=undef, $perform_gc=false, - $heap_size='4G', + $jvm_opts='-Xmx=4G', $bind_ip=undef, $ssldir=puppet_ssldir(), ) { diff --git a/modules/puppetdb/templates/puppetdb.service.erb b/modules/puppetdb/templates/puppetdb.service.erb index cef26bd..1f662c8 100644 --- a/modules/puppetdb/templates/puppetdb.service.erb +++ b/modules/puppetdb/templates/puppetdb.service.erb @@ -6,8 +6,8 @@ Group=puppetdb Environment=CONFIG=/etc/puppetdb/conf.d ExecStartPre=/bin/bash -c "test -e /var/log/puppetdb/puppetdb-oom.hprof && mv /var/log/puppetdb/puppetdb-oom.hprof /var/log/puppetdb/puppetdb-oom.hprof.prev || exit 0" -ExecStart=/usr/bin/java -Xmx<%= @heap_size %> -XX:+ExitOnOutOfMemoryError \ --XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/puppetdb/puppetdb-oom.hprof -Djava.security.egd=file:/dev/urandom \ +ExecStart=/usr/bin/java ${jvm_opts} \ +-XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/puppetdb/puppetdb-oom.hprof -Djava.security.egd=file:/dev/urandom \ -cp /usr/share/puppetdb/puppetdb.jar clojure.main -m com.puppetlabs.puppetdb.core services -c ${CONFIG} ExecReload=/bin/kill -HUP $MAINPID Restart=always diff --git a/modules/role/manifests/puppetmaster/puppetdb.pp b/modules/role/manifests/puppetmaster/puppetdb.pp index 5ae5b49..38dceb3 100644 --- a/modules/role/manifests/puppetmaster/puppetdb.pp +++ b/modules/role/manifests/puppetmaster/puppetdb.pp @@ -1,6 +1,6 @@ # filtertags: labs-project-deployment-prep labs-project-automation-framework labs-project-toolsbeta class role::puppetmaster::puppetdb ( - $shared_buffers = '7680MB' + $shared_buffers = '7680MB' ) { include ::standard include ::base::firewall @@ -85,9 +85,13 @@ master => $master, } + include ::profile::puppetmaster::puppetdb::monitoring + $prometheus_java_opts = $::profile::puppetmaster::puppetdb::monitoring::prometheus_java_opts + # The JVM heap size has been raised to 6G for T170740 class { '::puppetmaster::puppetdb': master => $master, - heap_size => '6G', + java_opts => "-Xmx=6G ${prometheus_java_opts}", + require => Class['profile::puppetmaster::puppetdb::monitoring'], } } -- To view, visit https://gerrit.wikimedia.org/r/394966 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I58f036e85edb98ef4170580d093c42f0bc8ef786 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Elukey <ltosc...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits