Burrow's Zookeeper-Consumer is only needed, if offsets are stored there
[demos/kafka/monitoring] / docker-compose.yml
index 28636a7..5ecfff2 100644 (file)
@@ -3,7 +3,7 @@ version: '3.2'
 services:
 
   zookeeper:
-    image: bitnami/zookeeper:latest
+    build: zookeeper
     environment:
       ALLOW_ANONYMOUS_LOGIN: 'yes'
 
@@ -63,6 +63,41 @@ services:
     depends_on:
       - zookeeper
 
+  setup:
+    image: juplo/toolbox
+    command: >
+      bash -c "
+        kafka-topics --bootstrap-server kafka:9092 --delete --if-exists --topic test
+        kafka-topics --bootstrap-server kafka:9092 --create --topic test --partitions 2 --replication-factor 3 --config min.insync.replicas=2
+        kafka-topics --bootstrap-server kafka:9092 --describe --topic test
+      "
+    depends_on:
+      - kafka-1
+      - kafka-2
+      - kafka-3
+
+  cli:
+    image: juplo/toolbox
+    command: sleep infinity
+    depends_on:
+      - kafka-1
+      - kafka-2
+      - kafka-3
+
+  burrow:
+    build: burrow
+    volumes:
+      - ./burrow.conf:/app/burrow.toml:ro
+    ports:
+      - 8080:8080
+
+  kafka-lag-exporter:
+    image: seglo/kafka-lag-exporter:0.8.2
+    volumes:
+      - ./kafka-lag-exporter.conf:/opt/docker/conf/application.conf:ro
+    ports:
+      - 8000:8000
+
   kafka-exporter:
     image: danielqsj/kafka-exporter:v1.6.0
     command: --kafka.server kafka:9092
@@ -75,3 +110,22 @@ services:
       - "9090:9090"
     volumes:
       - ./prometheus.yml:/etc/prometheus/prometheus.yml
+
+  grafana:
+    image: grafana/grafana
+    ports:
+      - "3000:3000"
+    volumes:
+      - grafana:/var/lib/grafana
+
+  producer:
+    image: juplo/simple-producer:1.0-SNAPSHOT
+    command: kafka:9092 test producer
+
+  consumer:
+    image: juplo/simple-consumer:1.0-SNAPSHOT
+    command: kafka:9092 test my-group consumer
+
+volumes:
+
+  grafana: