Skip to content

Commit 98646f4

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

File tree

12 files changed

+58
-24
lines changed

12 files changed

+58
-24
lines changed

3.8-rc/alpine/Dockerfile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
174174
RUN set -eux; \
175175
addgroup -g 101 -S rabbitmq; \
176176
adduser -u 100 -S -h "$RABBITMQ_DATA_DIR" -G rabbitmq rabbitmq; \
177-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
177+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
180180
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
181181

182182
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -229,6 +229,8 @@ RUN set -eux; \
229229
su-exec rabbitmq rabbitmq-plugins list; \
230230
# no stale cookies
231231
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
232+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
233+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
232234

233235
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
234236
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -246,5 +248,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
246248
COPY docker-entrypoint.sh /usr/local/bin/
247249
ENTRYPOINT ["docker-entrypoint.sh"]
248250

249-
EXPOSE 4369 5671 5672 25672
251+
EXPOSE 4369 5671 5672 15691 15692 25672
250252
CMD ["rabbitmq-server"]

3.8-rc/alpine/management/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM rabbitmq:3.8-rc-alpine
22

33
RUN rabbitmq-plugins enable --offline rabbitmq_management
4+
# make sure the metrics collector is re-enabled (disabled in the base image for Prometheus-style metrics by default)
5+
RUN rm -f /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
46

57
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
68
# see https://github.com/docker-library/rabbitmq/issues/207

3.8-rc/ubuntu/Dockerfile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
185185
RUN set -eux; \
186186
groupadd --gid 999 --system rabbitmq; \
187187
useradd --uid 999 --system --home-dir "$RABBITMQ_DATA_DIR" --gid rabbitmq rabbitmq; \
188-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
188+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
191191
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
192192

193193
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -247,6 +247,8 @@ RUN set -eux; \
247247
gosu rabbitmq rabbitmq-plugins list; \
248248
# no stale cookies
249249
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
250+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
251+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
250252

251253
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
252254
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -264,5 +266,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
264266
COPY docker-entrypoint.sh /usr/local/bin/
265267
ENTRYPOINT ["docker-entrypoint.sh"]
266268

267-
EXPOSE 4369 5671 5672 25672
269+
EXPOSE 4369 5671 5672 15691 15692 25672
268270
CMD ["rabbitmq-server"]

3.8-rc/ubuntu/management/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM rabbitmq:3.8-rc
22

33
RUN rabbitmq-plugins enable --offline rabbitmq_management
4+
# make sure the metrics collector is re-enabled (disabled in the base image for Prometheus-style metrics by default)
5+
RUN rm -f /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
46

57
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
68
# see https://github.com/docker-library/rabbitmq/issues/207

3.8/alpine/Dockerfile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
174174
RUN set -eux; \
175175
addgroup -g 101 -S rabbitmq; \
176176
adduser -u 100 -S -h "$RABBITMQ_DATA_DIR" -G rabbitmq rabbitmq; \
177-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
177+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
180180
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
181181

182182
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -229,6 +229,8 @@ RUN set -eux; \
229229
su-exec rabbitmq rabbitmq-plugins list; \
230230
# no stale cookies
231231
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
232+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
233+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
232234

233235
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
234236
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -246,5 +248,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
246248
COPY docker-entrypoint.sh /usr/local/bin/
247249
ENTRYPOINT ["docker-entrypoint.sh"]
248250

249-
EXPOSE 4369 5671 5672 25672
251+
EXPOSE 4369 5671 5672 15691 15692 25672
250252
CMD ["rabbitmq-server"]

3.8/alpine/management/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM rabbitmq:3.8-alpine
22

33
RUN rabbitmq-plugins enable --offline rabbitmq_management
4+
# make sure the metrics collector is re-enabled (disabled in the base image for Prometheus-style metrics by default)
5+
RUN rm -f /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
46

57
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
68
# see https://github.com/docker-library/rabbitmq/issues/207

3.8/ubuntu/Dockerfile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
185185
RUN set -eux; \
186186
groupadd --gid 999 --system rabbitmq; \
187187
useradd --uid 999 --system --home-dir "$RABBITMQ_DATA_DIR" --gid rabbitmq rabbitmq; \
188-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
188+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
191191
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
192192

193193
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -247,6 +247,8 @@ RUN set -eux; \
247247
gosu rabbitmq rabbitmq-plugins list; \
248248
# no stale cookies
249249
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
250+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
251+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
250252

251253
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
252254
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -264,5 +266,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
264266
COPY docker-entrypoint.sh /usr/local/bin/
265267
ENTRYPOINT ["docker-entrypoint.sh"]
266268

267-
EXPOSE 4369 5671 5672 25672
269+
EXPOSE 4369 5671 5672 15691 15692 25672
268270
CMD ["rabbitmq-server"]

3.8/ubuntu/management/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM rabbitmq:3.8
22

33
RUN rabbitmq-plugins enable --offline rabbitmq_management
4+
# make sure the metrics collector is re-enabled (disabled in the base image for Prometheus-style metrics by default)
5+
RUN rm -f /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
46

57
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
68
# see https://github.com/docker-library/rabbitmq/issues/207

Dockerfile-alpine.template

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
174174
RUN set -eux; \
175175
addgroup -g 101 -S rabbitmq; \
176176
adduser -u 100 -S -h "$RABBITMQ_DATA_DIR" -G rabbitmq rabbitmq; \
177-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
177+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
178+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
179+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
180180
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
181181

182182
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -229,6 +229,8 @@ RUN set -eux; \
229229
su-exec rabbitmq rabbitmq-plugins list; \
230230
# no stale cookies
231231
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
232+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
233+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
232234

233235
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
234236
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -246,5 +248,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
246248
COPY docker-entrypoint.sh /usr/local/bin/
247249
ENTRYPOINT ["docker-entrypoint.sh"]
248250

249-
EXPOSE 4369 5671 5672 25672
251+
EXPOSE 4369 5671 5672 15691 15692 25672
250252
CMD ["rabbitmq-server"]

Dockerfile-management.template

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM %%FROM%%
22

33
RUN rabbitmq-plugins enable --offline rabbitmq_management
4+
# make sure the metrics collector is re-enabled (disabled in the base image for Prometheus-style metrics by default)
5+
RUN rm -f /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
46

57
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
68
# see https://github.com/docker-library/rabbitmq/issues/207

Dockerfile-ubuntu.template

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ ENV RABBITMQ_DATA_DIR=/var/lib/rabbitmq
185185
RUN set -eux; \
186186
groupadd --gid 999 --system rabbitmq; \
187187
useradd --uid 999 --system --home-dir "$RABBITMQ_DATA_DIR" --gid rabbitmq rabbitmq; \
188-
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189-
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190-
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /tmp/rabbitmq-ssl /var/log/rabbitmq; \
188+
mkdir -p "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
189+
chown -fR rabbitmq:rabbitmq "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
190+
chmod 777 "$RABBITMQ_DATA_DIR" /etc/rabbitmq /etc/rabbitmq/conf.d /tmp/rabbitmq-ssl /var/log/rabbitmq; \
191191
ln -sf "$RABBITMQ_DATA_DIR/.erlang.cookie" /root/.erlang.cookie
192192

193193
# Use the latest stable RabbitMQ release (https://www.rabbitmq.com/download.html)
@@ -247,6 +247,8 @@ RUN set -eux; \
247247
gosu rabbitmq rabbitmq-plugins list; \
248248
# no stale cookies
249249
rm "$RABBITMQ_DATA_DIR/.erlang.cookie"
250+
# Enable Prometheus-style metrics by default (https://github.com/docker-library/rabbitmq/issues/419)
251+
RUN set -eux; rabbitmq-plugins enable --offline rabbitmq_prometheus; echo 'management_agent.disable_metrics_collector = true' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
250252

251253
# Added for backwards compatibility - users can simply COPY custom plugins to /plugins
252254
RUN ln -sf /opt/rabbitmq/plugins /plugins
@@ -264,5 +266,5 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
264266
COPY docker-entrypoint.sh /usr/local/bin/
265267
ENTRYPOINT ["docker-entrypoint.sh"]
266268

267-
EXPOSE 4369 5671 5672 25672
269+
EXPOSE 4369 5671 5672 15691 15692 25672
268270
CMD ["rabbitmq-server"]

update.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,5 +145,17 @@ for version in "${versions[@]}"; do
145145
-e "s!%%INSTALL_PYTHON%%!$installPython!g" \
146146
Dockerfile-management.template \
147147
> "$version/$variant/management/Dockerfile"
148+
149+
# rabbitmq_prometheus is only included in 3.8+
150+
# same with "/etc/rabbitmq/conf.d" support (https://github.com/rabbitmq/rabbitmq-server/pull/2258, https://github.com/rabbitmq/rabbitmq-server/pull/2277)
151+
if [ "$rcVersion" = '3.7' ]; then
152+
sed -ri \
153+
-e '/[Pp]rometheus/d' \
154+
-e '/metrics_collector/d' \
155+
-e 's/ 15691 15692 / /g' \
156+
-e 's! /etc/rabbitmq/conf.d ! !g' \
157+
"$version/$variant/Dockerfile" \
158+
"$version/$variant/management/Dockerfile"
159+
fi
148160
done
149161
done

0 commit comments

Comments
 (0)