Burrow's Zookeeper-Consumer is only needed, if offsets are stored there
[demos/kafka/monitoring] / docker-compose.yml
index 056be3c..5ecfff2 100644 (file)
@@ -1,7 +1,9 @@
 version: '3.2'
+
 services:
+
   zookeeper:
-    image: bitnami/zookeeper:latest
+    build: zookeeper
     environment:
       ALLOW_ANONYMOUS_LOGIN: 'yes'
 
@@ -61,8 +63,69 @@ 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
     ports:
       - 9308:9308
+
+  prometheus:
+    image: prom/prometheus
+    ports:
+      - "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: