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:
parent
789f6c041e
commit
dbb1bee383
|
@ -2,6 +2,7 @@
|
||||||
.git
|
.git
|
||||||
ebin
|
ebin
|
||||||
logs
|
logs
|
||||||
|
prometheus
|
||||||
src
|
src
|
||||||
test
|
test
|
||||||
tmp
|
tmp
|
||||||
|
|
|
@ -15,3 +15,4 @@
|
||||||
|
|
||||||
/rabbitmq_management_metrics.d
|
/rabbitmq_management_metrics.d
|
||||||
erl_crash.dump
|
erl_crash.dump
|
||||||
|
prometheus/data
|
||||||
|
|
|
@ -255,7 +255,7 @@ VOLUME $RABBITMQ_DATA_DIR
|
||||||
# https://docs.docker.com/samples/library/ubuntu/#locales
|
# https://docs.docker.com/samples/library/ubuntu/#locales
|
||||||
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|
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"]
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||||
|
|
||||||
EXPOSE 4369 5671 5672 25672
|
EXPOSE 4369 5671 5672 25672
|
||||||
|
@ -289,9 +289,10 @@ EXPOSE 15671 15672
|
||||||
|
|
||||||
# rabbitmq_prometheus
|
# rabbitmq_prometheus
|
||||||
ARG RABBITMQ_PROMETHEUS_VERSION
|
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 && \
|
RUN chmod a+r /plugins/*.ez && \
|
||||||
chown rabbitmq:rabbitmq /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 enable --offline rabbitmq_prometheus && \
|
||||||
rabbitmq-plugins is_enabled rabbitmq_prometheus --offline && \
|
rabbitmq-plugins is_enabled rabbitmq_prometheus --offline && \
|
||||||
rabbitmq-plugins list | grep "rabbitmq_prometheus.*${RABBITMQ_PROMETHEUS_VERSION}"
|
rabbitmq-plugins list | grep "rabbitmq_prometheus.*${RABBITMQ_PROMETHEUS_VERSION}"
|
|
@ -4,8 +4,11 @@ PROJECT_MOD = rabbit_prometheus_app
|
||||||
TEST_DEPS = eunit_formatters
|
TEST_DEPS = eunit_formatters
|
||||||
EUNIT_OPTS = no_tty, {report, {eunit_progress, [colored, profile]}}
|
EUNIT_OPTS = no_tty, {report, {eunit_progress, [colored, profile]}}
|
||||||
|
|
||||||
DEPS = rabbit_common rabbit rabbitmq_management_agent prometheus accept rabbitmq_web_dispatch
|
DEPS = rabbit rabbitmq_management_agent prometheus rabbitmq_web_dispatch
|
||||||
BUILD_DEPS = amqp_client
|
# 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_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk
|
||||||
DEP_PLUGINS = rabbit_common/mk/rabbitmq-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_REPO = https://github.com/rabbitmq/erlang.mk.git
|
||||||
ERLANG_MK_COMMIT = rabbitmq-tmp
|
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 rabbitmq-components.mk
|
||||||
include erlang.mk
|
include erlang.mk
|
||||||
|
|
||||||
DOCKER_IMAGE_VERSION := 3.8-2019.04.15
|
DOCKER_IMAGE_VERSION := 3.8-2019.04.22
|
||||||
|
|
||||||
.PHONY: docker_login
|
.PHONY: docker_login
|
||||||
docker_login:
|
docker_login:
|
||||||
|
@ -39,7 +48,7 @@ docker_image_build: tests
|
||||||
--build-arg PGP_KEYSERVER=pgpkeys.eu \
|
--build-arg PGP_KEYSERVER=pgpkeys.eu \
|
||||||
--build-arg RABBITMQ_PROMETHEUS_VERSION=$(PROJECT_VERSION) \
|
--build-arg RABBITMQ_PROMETHEUS_VERSION=$(PROJECT_VERSION) \
|
||||||
--tag pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) \
|
--tag pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) \
|
||||||
--tag pivotalrabbitmq/rabbitmq-prometheus:latest docker
|
--tag pivotalrabbitmq/rabbitmq-prometheus:latest .
|
||||||
.PHONY: dib
|
.PHONY: dib
|
||||||
dib: docker_image_build
|
dib: docker_image_build
|
||||||
|
|
||||||
|
@ -47,8 +56,8 @@ dib: docker_image_build
|
||||||
docker_image_push:
|
docker_image_push:
|
||||||
@docker push pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) && \
|
@docker push pivotalrabbitmq/rabbitmq-prometheus:$(DOCKER_IMAGE_VERSION) && \
|
||||||
docker push pivotalrabbitmq/rabbitmq-prometheus:latest
|
docker push pivotalrabbitmq/rabbitmq-prometheus:latest
|
||||||
.PHONY: dib
|
.PHONY: dip
|
||||||
dib: docker_image_build
|
dip: docker_image_push
|
||||||
|
|
||||||
define RUN_DOCKER_IMAGE
|
define RUN_DOCKER_IMAGE
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: rabbitmq
|
||||||
|
scrape_interval: 5s
|
||||||
|
scrape_timeout: 4s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:15692']
|
|
@ -0,0 +1 @@
|
||||||
|
management_agent.disable_metrics_collector = true
|
Loading…
Reference in New Issue