deploy/platform/docker/docker-compose.rabbitmq-monitor.yaml (151 lines of code) (raw):
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @feature: elasticsearch; set up prometheus_elasticsearch_exporter and OpenTelemetry collector
version: '2.1'
services:
rmq0: &rabbitmq
image: rabbitmq:3.11.14-management
networks:
- sw
ports:
- "15673:15672"
- "15693:15692"
cap_add:
- ALL
hostname: rmq0
environment:
RABBITMQ_ERLANG_COOKIE: rabbitmq-prometheus
volumes:
- ./config/rabbitmq/rabbitmq-overview.conf:/etc/rabbitmq/rabbitmq.conf:ro
- ./config/rabbitmq/rabbitmq-overview-definitions.json:/etc/rabbitmq/rabbitmq-definitions.json:ro
ulimits:
nofile:
soft: 2000
hard: 2000
# The following services are used for mocking test data
basic-get:
image: &perf-test-image pivotalrabbitmq/perf-test:2.15.0-ubuntu
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
QUEUE: basic-get
ROUTING_KEY: basic-get
VARIABLE_RATE: "1:1,0:30"
POLLING: "true"
POLLING_INTERVAL: 5000
AUTOACK: "false"
SERVERS_STARTUP_TIMEOUT: &startup_timeout 60
METRICS_PROMETHEUS: "true"
basic-get-auto:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
QUEUE: basic-get
ROUTING_KEY: basic-get
PRODUCERS: 0
POLLING: "true"
POLLING_INTERVAL: 5000
AUTOACK: "true"
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
greedy-consumer:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
QUEUE: greedy-consumer
ROUTING_KEY: greedy-consumer
VARIABLE_RATE: "100:20,0:20"
CONSUMER_RATE: 50
QOS: 2000
AUTOACK: "false"
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
publisher-confirms:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
QUEUE: publisher-confirms
ROUTING_KEY: publisher-confirms
AUTOACK: "true"
VARIABLE_RATE: "12:30,25:30,50:30,100:30"
CONFIRM: 1
CONFIRM_TIMEOUT: 1
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
slow-consumer-persistent:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
QUEUE: ha3-slow-consumer-persistent
ROUTING_KEY: slow-consumer-persistent
QUEUE_ARGS: x-max-length=10000
FLAG: persistent
AUTO_DELETE: "false"
SIZE: 51200
VARIABLE_RATE: "100:20,0:20"
CONSUMER_RATE: 50
QOS: 50
AUTOACK: "false"
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
nack:
image: *perf-test-image
networks:
- "e2e"
entrypoint: []
command: /bin/bash -c "while true; do bin/runjava com.rabbitmq.perf.PerfTest; sleep 10; done"
environment:
TIME: 60
URI: "amqp://guest:guest@rmq0:5672/%2f"
VARIABLE_RATE: "1:10,0:20"
QUEUE: nack
QUEUE_ARGS: x-max-length=100
ROUTING_KEY: nack
AUTOACK: "false"
NACK: "true"
QOS: 5
CONSUMER_LATENCY: 3000000
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
unroutable-return:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
VARIABLE_RATE: "2:30,4:30,10:30"
VARIABLE_SIZE: "100:30,200:30"
CONSUMERS: 0
FLAG: mandatory
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
unroutable-drop:
image: *perf-test-image
networks:
- "e2e"
environment:
URI: "amqp://guest:guest@rmq0:5672/%2f"
VARIABLE_RATE: "5:30,10:30,20:30"
VARIABLE_SIZE: "100:30,200:30"
CONSUMERS: 0
SERVERS_STARTUP_TIMEOUT: *startup_timeout
METRICS_PROMETHEUS: "true"
otel-collector:
image: ${OTEL_COLLECTOR_IMAGE}:${OTEL_COLLECTOR_IMAGE_TAG}
networks:
- sw
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ./config/rabbitmq/otel-collector-config.yaml:/etc/otel-collector-config.yaml
expose:
- 55678
depends_on:
oap:
condition: service_healthy
networks:
sw: