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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits