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

Reply via email to