Elukey has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/390419 )
Change subject: profile::druid::broker: add prometheus jmx exporter config (jvm
only)
......................................................................
profile::druid::broker: add prometheus jmx exporter config (jvm only)
Bug: T177459
Change-Id: Ied9513222bf5256c70b428228c8d9a196a09bc1c
---
M hieradata/role/common/druid/analytics/worker.yaml
M hieradata/role/common/druid/public/worker.yaml
A modules/profile/files/druid/jvm_prometheus_jmx_exporter.yaml
M modules/profile/manifests/druid/broker.pp
A modules/profile/manifests/druid/monitoring/broker.pp
5 files changed, 44 insertions(+), 2 deletions(-)
Approvals:
Elukey: Looks good to me, approved
jenkins-bot: Verified
diff --git a/hieradata/role/common/druid/analytics/worker.yaml
b/hieradata/role/common/druid/analytics/worker.yaml
index 59fd334..9528f25 100644
--- a/hieradata/role/common/druid/analytics/worker.yaml
+++ b/hieradata/role/common/druid/analytics/worker.yaml
@@ -70,6 +70,7 @@
# --- Druid Broker
# Broker gets a special ferm_srange since it is the frontend query interface
to Druid.
+profile::druid::broker::monitoring_enabled: true
profile::druid::broker::ferm_srange: '$ANALYTICS_NETWORKS'
profile::druid::broker::properties:
druid.processing.numThreads: 10
diff --git a/hieradata/role/common/druid/public/worker.yaml
b/hieradata/role/common/druid/public/worker.yaml
index fac2bbf..ce4f5cf 100644
--- a/hieradata/role/common/druid/public/worker.yaml
+++ b/hieradata/role/common/druid/public/worker.yaml
@@ -64,6 +64,7 @@
# --- Druid Broker
# Broker gets a special ferm_srange since it is the frontend query interface
to Druid.
+profile::druid::broker::monitoring_enabled: true
profile::druid::broker::ferm_srange: '$DOMAIN_NETWORKS'
profile::druid::broker::properties:
druid.processing.numThreads: 10
diff --git a/modules/profile/files/druid/jvm_prometheus_jmx_exporter.yaml
b/modules/profile/files/druid/jvm_prometheus_jmx_exporter.yaml
new file mode 100644
index 0000000..73530b2
--- /dev/null
+++ b/modules/profile/files/druid/jvm_prometheus_jmx_exporter.yaml
@@ -0,0 +1,3 @@
+---
+lowercaseOutputLabelNames: true
+lowercaseOutputName: false
\ No newline at end of file
diff --git a/modules/profile/manifests/druid/broker.pp
b/modules/profile/manifests/druid/broker.pp
index dde1163..7ab39a4 100644
--- a/modules/profile/manifests/druid/broker.pp
+++ b/modules/profile/manifests/druid/broker.pp
@@ -9,16 +9,35 @@
$properties = hiera('profile::druid::broker::properties'),
$env = hiera('profile::druid::broker::env'),
$ferm_srange = hiera('profile::druid::broker::ferm_srange'),
- $monitoring_enabled = hiera('profile::druid::monitoring_enabled'),
$daemon_autoreload = hiera('profile::druid::daemons_autoreload'),
+ $monitoring_enabled = hiera('profile::druid::broker::monitoring_enabled'),
) {
require ::profile::druid::common
+ # If monitoring is enabled, then include the monitoring profile and set
$java_opts
+ # for exposing the Prometheus JMX Exporter in the Druid Broker process.
+ if $monitoring_enabled {
+ include ::profile::druid::monitoring::broker
+ $java_opts = $::profile::druid::monitoring::broker::java_opts
+
+ if $env['DRUID_EXTRA_JVM_OPTS'] {
+ $monitoring_env_vars = {
+ 'DRUID_EXTRA_JVM_OPTS' => "${env['DRUID_EXTRA_JVM_OPTS']}
${java_opts}"
+ }
+ } else {
+ $monitoring_env_vars = {
+ 'DRUID_EXTRA_JVM_OPTS' => $java_opts
+ }
+ }
+ } else {
+ $monitoring_env_vars = {}
+ }
+
# Druid Broker Service
class { '::druid::broker':
properties => $properties,
- env => $env,
+ env => merge($env, $monitoring_env_vars),
should_subscribe => $daemon_autoreload,
}
diff --git a/modules/profile/manifests/druid/monitoring/broker.pp
b/modules/profile/manifests/druid/monitoring/broker.pp
new file mode 100644
index 0000000..29e0cee
--- /dev/null
+++ b/modules/profile/manifests/druid/monitoring/broker.pp
@@ -0,0 +1,18 @@
+# Class: profile::druid::monitoring::broker
+#
+# Sets up Prometheus based monitoring (only jvm) for the druid broker.
+#
+class profile::druid::monitoring::broker(
+ $prometheus_nodes = hiera('prometheus_nodes'),
+) {
+ $jmx_exporter_config_file = '/etc/druid/jvm_prometheus_jmx_exporter.yaml'
+ $prometheus_jmx_exporter_broker_port = 8182
+ $java_opts =
"-javaagent:/usr/share/java/prometheus/jmx_prometheus_javaagent.jar=${::ipaddress}:${prometheus_jmx_exporter_broker_port}:${jmx_exporter_config_file}"
+ profile::prometheus::jmx_exporter { "druid_broker_${::hostname}":
+ hostname => $::hostname,
+ port => $prometheus_jmx_exporter_broker_port,
+ prometheus_nodes => $prometheus_nodes,
+ config_file => $jmx_exporter_config_file,
+ source =>
'puppet:///modules/profile/druid/jvm_prometheus_jmx_exporter.yaml',
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/390419
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ied9513222bf5256c70b428228c8d9a196a09bc1c
Gerrit-PatchSet: 11
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Elukey <[email protected]>
Gerrit-Reviewer: Elukey <[email protected]>
Gerrit-Reviewer: Filippo Giunchedi <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits