Build Docker image with the latest management & management_agent

This has support for disabling metrics_collector, as captured in
rabbitmq/rabbitmq-management-agent#78 & rabbitmq/rabbitmq-management#691

Since we want management to be enabled, this doesn't help our use-case,
but this option is perfect for users that want metrics, but don't want
to pay the overhead of Management - especially metric aggregations.

[#164376052]
This commit is contained in:
Gerhard Lazu 2019-04-22 17:47:22 +01:00
parent 789f6c041e
commit dbb1bee383
6 changed files with 27 additions and 8 deletions

View File

@ -2,6 +2,7 @@
.git
ebin
logs
prometheus
src
test
tmp

View File

@ -15,3 +15,4 @@
/rabbitmq_management_metrics.d
erl_crash.dump
prometheus/data

View File

@ -255,7 +255,7 @@ VOLUME $RABBITMQ_DATA_DIR
# https://docs.docker.com/samples/library/ubuntu/#locales
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
COPY docker-entrypoint.sh /usr/local/bin/
COPY docker/docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 4369 5671 5672 25672
@ -289,9 +289,10 @@ EXPOSE 15671 15672
# rabbitmq_prometheus
ARG RABBITMQ_PROMETHEUS_VERSION
COPY plugins/accept*.ez plugins/prometheus*.ez plugins/rabbitmq_prometheus*.ez /plugins/
COPY plugins/accept*.ez plugins/prometheus*.ez plugins/rabbitmq_management*.ez plugins/rabbitmq_prometheus*.ez /plugins/
RUN chmod a+r /plugins/*.ez && \
chown rabbitmq:rabbitmq /plugins/*.ez && \
rm /plugins/rabbitmq_management-${RABBITMQ_VERSION}.ez /plugins/rabbitmq_management_agent-${RABBITMQ_VERSION}.ez && \
rabbitmq-plugins enable --offline rabbitmq_prometheus && \
rabbitmq-plugins is_enabled rabbitmq_prometheus --offline && \
rabbitmq-plugins list | grep "rabbitmq_prometheus.*${RABBITMQ_PROMETHEUS_VERSION}"

View File

@ -4,8 +4,11 @@ PROJECT_MOD = rabbit_prometheus_app
TEST_DEPS = eunit_formatters
EUNIT_OPTS = no_tty, {report, {eunit_progress, [colored, profile]}}
DEPS = rabbit_common rabbit rabbitmq_management_agent prometheus accept rabbitmq_web_dispatch
BUILD_DEPS = amqp_client
DEPS = rabbit rabbitmq_management_agent prometheus rabbitmq_web_dispatch
# Deps that are not applications
# rabbitmq_management is added so that we build a custom version, for the Docker image
BUILD_DEPS = accept amqp_client rabbit_common rabbitmq_management
TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers
DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk
DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk
@ -16,10 +19,16 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk
ERLANG_MK_REPO = https://github.com/rabbitmq/erlang.mk.git
ERLANG_MK_COMMIT = rabbitmq-tmp
ifneq ($(DISABLE_METRICS_COLLECTOR),)
BUILD_DEPS = accept amqp_client rabbit_common
RABBITMQ_CONFIG_FILE = $(CURDIR)/rabbitmq-disable-metrics-collector.conf
export RABBITMQ_CONFIG_FILE
endif
include rabbitmq-components.mk
include erlang.mk
DOCKER_IMAGE_VERSION := 3.8-2019.04.15
DOCKER_IMAGE_VERSION := 3.8-2019.04.22
.PHONY: docker_login
docker_login:
@ -39,7 +48,7 @@ docker_image_build: tests
--build-arg PGP_KEYSERVER=pgpkeys.eu \
--build-arg RABBITMQ_PROMETHEUS_VERSION=$(PROJECT_VERSION) \
--tag pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) \
--tag pivotalrabbitmq/rabbitmq-prometheus:latest docker
--tag pivotalrabbitmq/rabbitmq-prometheus:latest .
.PHONY: dib
dib: docker_image_build
@ -47,8 +56,8 @@ dib: docker_image_build
docker_image_push:
@docker push pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) && \
docker push pivotalrabbitmq/rabbitmq-prometheus:latest
.PHONY: dib
dib: docker_image_build
.PHONY: dip
dip: docker_image_push
define RUN_DOCKER_IMAGE
endef

View File

@ -0,0 +1,6 @@
scrape_configs:
- job_name: rabbitmq
scrape_interval: 5s
scrape_timeout: 4s
static_configs:
- targets: ['localhost:15692']

View File

@ -0,0 +1 @@
management_agent.disable_metrics_collector = true