Skip to content

Commit 454b43f

Browse files
committed
Enable "rabbitmq_prometheus" in RabbitMQ 3.8 by default
1 parent 6c78066 commit 454b43f

16 files changed

+343
-6
lines changed

3.7-rc/alpine/docker-entrypoint.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ file_env() {
3232
: "${RABBITMQ_MANAGEMENT_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
3333
: "${RABBITMQ_MANAGEMENT_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
3434
: "${RABBITMQ_MANAGEMENT_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
35+
# ... and so should "prometheus"
36+
: "${RABBITMQ_PROMETHEUS_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
37+
: "${RABBITMQ_PROMETHEUS_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
38+
: "${RABBITMQ_PROMETHEUS_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
3539

3640
# Allowed env vars that will be read from mounted files (i.e. Docker Secrets):
3741
fileEnvKeys=(
@@ -51,6 +55,9 @@ sslConfigKeys=(
5155
managementConfigKeys=(
5256
"${sslConfigKeys[@]/#/ssl_}"
5357
)
58+
prometheusConfigKeys=(
59+
"${sslConfigKeys[@]/#/ssl_}"
60+
)
5461
rabbitConfigKeys=(
5562
default_pass
5663
default_user
@@ -61,12 +68,16 @@ fileConfigKeys=(
6168
management_ssl_cacertfile
6269
management_ssl_certfile
6370
management_ssl_keyfile
71+
prometheus_ssl_cacertfile
72+
prometheus_ssl_certfile
73+
prometheus_ssl_keyfile
6474
ssl_cacertfile
6575
ssl_certfile
6676
ssl_keyfile
6777
)
6878
allConfigKeys=(
6979
"${managementConfigKeys[@]/#/management_}"
80+
"${prometheusConfigKeys[@]/#/prometheus_}"
7081
"${rabbitConfigKeys[@]}"
7182
"${sslConfigKeys[@]/#/ssl_}"
7283
)
@@ -75,6 +86,9 @@ declare -A configDefaults=(
7586
[management_ssl_fail_if_no_peer_cert]='false'
7687
[management_ssl_verify]='verify_none'
7788

89+
[prometheus_ssl_fail_if_no_peer_cert]='false'
90+
[prometheus_ssl_verify]='verify_none'
91+
7892
[ssl_fail_if_no_peer_cert]='true'
7993
[ssl_verify]='verify_peer'
8094
)
@@ -113,6 +127,7 @@ fi
113127
haveConfig=
114128
haveSslConfig=
115129
haveManagementSslConfig=
130+
havePrometheusSslConfig=
116131
for fileEnvKey in "${fileEnvKeys[@]}"; do file_env "RABBITMQ_${fileEnvKey^^}"; done
117132
for conf in "${allConfigKeys[@]}"; do
118133
var="RABBITMQ_${conf^^}"
@@ -126,6 +141,7 @@ for conf in "${allConfigKeys[@]}"; do
126141
case "$conf" in
127142
ssl_*) haveSslConfig=1 ;;
128143
management_ssl_*) haveManagementSslConfig=1 ;;
144+
prometheus_ssl_*) havePrometheusSslConfig=1 ;;
129145
esac
130146
fi
131147
done
@@ -271,6 +287,7 @@ rabbit_env_config() {
271287
case "$prefix" in
272288
ssl) key="ssl_options.$key" ;;
273289
management_ssl) key="management.ssl.$key" ;;
290+
prometheus_ssl) key="prometheus.ssl.$key" ;;
274291
esac
275292

276293
local val="${!var:-}"
@@ -374,7 +391,9 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
374391

375392
# if management plugin is installed, generate config for it
376393
# https://www.rabbitmq.com/management.html#configuration
394+
managementEnabled=
377395
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_management)" ]; then
396+
managementEnabled=1
378397
if [ "$haveManagementSslConfig" ]; then
379398
rabbit_set_config 'management.ssl.port' 15671
380399
rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}"
@@ -390,6 +409,22 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
390409
rabbit_set_config 'management.load_definitions' "$managementDefinitionsFile"
391410
fi
392411
fi
412+
413+
# if prometheus plugin is installed, generate config for it
414+
# https://www.rabbitmq.com/prometheus.html#prometheus-configuration
415+
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_prometheus)" ]; then
416+
if [ "$havePrometheusSslConfig" ]; then
417+
rabbit_set_config 'prometheus.ssl.port' 15691
418+
rabbit_env_config 'prometheus_ssl' "${sslConfigKeys[@]}"
419+
else
420+
rabbit_set_config 'prometheus.tcp.port' 15692
421+
fi
422+
423+
# if the management plugin is not enabled, then disable the metrics collector in the management_agent plugin (https://github.com/rabbitmq/rabbitmq-management-agent/pull/78)
424+
if [ -z "$managementEnabled" ]; then
425+
rabbit_set_config 'management_agent.disable_metrics_collector' 'true'
426+
fi
427+
fi
393428
fi
394429

395430
combinedSsl='/tmp/rabbitmq-ssl/combined.pem'

3.7-rc/ubuntu/docker-entrypoint.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ file_env() {
3232
: "${RABBITMQ_MANAGEMENT_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
3333
: "${RABBITMQ_MANAGEMENT_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
3434
: "${RABBITMQ_MANAGEMENT_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
35+
# ... and so should "prometheus"
36+
: "${RABBITMQ_PROMETHEUS_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
37+
: "${RABBITMQ_PROMETHEUS_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
38+
: "${RABBITMQ_PROMETHEUS_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
3539

3640
# Allowed env vars that will be read from mounted files (i.e. Docker Secrets):
3741
fileEnvKeys=(
@@ -51,6 +55,9 @@ sslConfigKeys=(
5155
managementConfigKeys=(
5256
"${sslConfigKeys[@]/#/ssl_}"
5357
)
58+
prometheusConfigKeys=(
59+
"${sslConfigKeys[@]/#/ssl_}"
60+
)
5461
rabbitConfigKeys=(
5562
default_pass
5663
default_user
@@ -61,12 +68,16 @@ fileConfigKeys=(
6168
management_ssl_cacertfile
6269
management_ssl_certfile
6370
management_ssl_keyfile
71+
prometheus_ssl_cacertfile
72+
prometheus_ssl_certfile
73+
prometheus_ssl_keyfile
6474
ssl_cacertfile
6575
ssl_certfile
6676
ssl_keyfile
6777
)
6878
allConfigKeys=(
6979
"${managementConfigKeys[@]/#/management_}"
80+
"${prometheusConfigKeys[@]/#/prometheus_}"
7081
"${rabbitConfigKeys[@]}"
7182
"${sslConfigKeys[@]/#/ssl_}"
7283
)
@@ -75,6 +86,9 @@ declare -A configDefaults=(
7586
[management_ssl_fail_if_no_peer_cert]='false'
7687
[management_ssl_verify]='verify_none'
7788

89+
[prometheus_ssl_fail_if_no_peer_cert]='false'
90+
[prometheus_ssl_verify]='verify_none'
91+
7892
[ssl_fail_if_no_peer_cert]='true'
7993
[ssl_verify]='verify_peer'
8094
)
@@ -113,6 +127,7 @@ fi
113127
haveConfig=
114128
haveSslConfig=
115129
haveManagementSslConfig=
130+
havePrometheusSslConfig=
116131
for fileEnvKey in "${fileEnvKeys[@]}"; do file_env "RABBITMQ_${fileEnvKey^^}"; done
117132
for conf in "${allConfigKeys[@]}"; do
118133
var="RABBITMQ_${conf^^}"
@@ -126,6 +141,7 @@ for conf in "${allConfigKeys[@]}"; do
126141
case "$conf" in
127142
ssl_*) haveSslConfig=1 ;;
128143
management_ssl_*) haveManagementSslConfig=1 ;;
144+
prometheus_ssl_*) havePrometheusSslConfig=1 ;;
129145
esac
130146
fi
131147
done
@@ -271,6 +287,7 @@ rabbit_env_config() {
271287
case "$prefix" in
272288
ssl) key="ssl_options.$key" ;;
273289
management_ssl) key="management.ssl.$key" ;;
290+
prometheus_ssl) key="prometheus.ssl.$key" ;;
274291
esac
275292

276293
local val="${!var:-}"
@@ -374,7 +391,9 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
374391

375392
# if management plugin is installed, generate config for it
376393
# https://www.rabbitmq.com/management.html#configuration
394+
managementEnabled=
377395
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_management)" ]; then
396+
managementEnabled=1
378397
if [ "$haveManagementSslConfig" ]; then
379398
rabbit_set_config 'management.ssl.port' 15671
380399
rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}"
@@ -390,6 +409,22 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
390409
rabbit_set_config 'management.load_definitions' "$managementDefinitionsFile"
391410
fi
392411
fi
412+
413+
# if prometheus plugin is installed, generate config for it
414+
# https://www.rabbitmq.com/prometheus.html#prometheus-configuration
415+
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_prometheus)" ]; then
416+
if [ "$havePrometheusSslConfig" ]; then
417+
rabbit_set_config 'prometheus.ssl.port' 15691
418+
rabbit_env_config 'prometheus_ssl' "${sslConfigKeys[@]}"
419+
else
420+
rabbit_set_config 'prometheus.tcp.port' 15692
421+
fi
422+
423+
# if the management plugin is not enabled, then disable the metrics collector in the management_agent plugin (https://github.com/rabbitmq/rabbitmq-management-agent/pull/78)
424+
if [ -z "$managementEnabled" ]; then
425+
rabbit_set_config 'management_agent.disable_metrics_collector' 'true'
426+
fi
427+
fi
393428
fi
394429

395430
combinedSsl='/tmp/rabbitmq-ssl/combined.pem'

3.7/alpine/docker-entrypoint.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ file_env() {
3232
: "${RABBITMQ_MANAGEMENT_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
3333
: "${RABBITMQ_MANAGEMENT_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
3434
: "${RABBITMQ_MANAGEMENT_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
35+
# ... and so should "prometheus"
36+
: "${RABBITMQ_PROMETHEUS_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}"
37+
: "${RABBITMQ_PROMETHEUS_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}"
38+
: "${RABBITMQ_PROMETHEUS_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}"
3539

3640
# Allowed env vars that will be read from mounted files (i.e. Docker Secrets):
3741
fileEnvKeys=(
@@ -51,6 +55,9 @@ sslConfigKeys=(
5155
managementConfigKeys=(
5256
"${sslConfigKeys[@]/#/ssl_}"
5357
)
58+
prometheusConfigKeys=(
59+
"${sslConfigKeys[@]/#/ssl_}"
60+
)
5461
rabbitConfigKeys=(
5562
default_pass
5663
default_user
@@ -61,12 +68,16 @@ fileConfigKeys=(
6168
management_ssl_cacertfile
6269
management_ssl_certfile
6370
management_ssl_keyfile
71+
prometheus_ssl_cacertfile
72+
prometheus_ssl_certfile
73+
prometheus_ssl_keyfile
6474
ssl_cacertfile
6575
ssl_certfile
6676
ssl_keyfile
6777
)
6878
allConfigKeys=(
6979
"${managementConfigKeys[@]/#/management_}"
80+
"${prometheusConfigKeys[@]/#/prometheus_}"
7081
"${rabbitConfigKeys[@]}"
7182
"${sslConfigKeys[@]/#/ssl_}"
7283
)
@@ -75,6 +86,9 @@ declare -A configDefaults=(
7586
[management_ssl_fail_if_no_peer_cert]='false'
7687
[management_ssl_verify]='verify_none'
7788

89+
[prometheus_ssl_fail_if_no_peer_cert]='false'
90+
[prometheus_ssl_verify]='verify_none'
91+
7892
[ssl_fail_if_no_peer_cert]='true'
7993
[ssl_verify]='verify_peer'
8094
)
@@ -113,6 +127,7 @@ fi
113127
haveConfig=
114128
haveSslConfig=
115129
haveManagementSslConfig=
130+
havePrometheusSslConfig=
116131
for fileEnvKey in "${fileEnvKeys[@]}"; do file_env "RABBITMQ_${fileEnvKey^^}"; done
117132
for conf in "${allConfigKeys[@]}"; do
118133
var="RABBITMQ_${conf^^}"
@@ -126,6 +141,7 @@ for conf in "${allConfigKeys[@]}"; do
126141
case "$conf" in
127142
ssl_*) haveSslConfig=1 ;;
128143
management_ssl_*) haveManagementSslConfig=1 ;;
144+
prometheus_ssl_*) havePrometheusSslConfig=1 ;;
129145
esac
130146
fi
131147
done
@@ -271,6 +287,7 @@ rabbit_env_config() {
271287
case "$prefix" in
272288
ssl) key="ssl_options.$key" ;;
273289
management_ssl) key="management.ssl.$key" ;;
290+
prometheus_ssl) key="prometheus.ssl.$key" ;;
274291
esac
275292

276293
local val="${!var:-}"
@@ -374,7 +391,9 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
374391

375392
# if management plugin is installed, generate config for it
376393
# https://www.rabbitmq.com/management.html#configuration
394+
managementEnabled=
377395
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_management)" ]; then
396+
managementEnabled=1
378397
if [ "$haveManagementSslConfig" ]; then
379398
rabbit_set_config 'management.ssl.port' 15671
380399
rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}"
@@ -390,6 +409,22 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
390409
rabbit_set_config 'management.load_definitions' "$managementDefinitionsFile"
391410
fi
392411
fi
412+
413+
# if prometheus plugin is installed, generate config for it
414+
# https://www.rabbitmq.com/prometheus.html#prometheus-configuration
415+
if [ "$(rabbitmq-plugins list -q -m -e rabbitmq_prometheus)" ]; then
416+
if [ "$havePrometheusSslConfig" ]; then
417+
rabbit_set_config 'prometheus.ssl.port' 15691
418+
rabbit_env_config 'prometheus_ssl' "${sslConfigKeys[@]}"
419+
else
420+
rabbit_set_config 'prometheus.tcp.port' 15692
421+
fi
422+
423+
# if the management plugin is not enabled, then disable the metrics collector in the management_agent plugin (https://github.com/rabbitmq/rabbitmq-management-agent/pull/78)
424+
if [ -z "$managementEnabled" ]; then
425+
rabbit_set_config 'management_agent.disable_metrics_collector' 'true'
426+
fi
427+
fi
393428
fi
394429

395430
combinedSsl='/tmp/rabbitmq-ssl/combined.pem'

0 commit comments

Comments
 (0)