From c8d60478c5dc7c0b3a4b66ea37ff7199bbe7e125 Mon Sep 17 00:00:00 2001
From: Arnav Jain <JainAR1@cardiff.ac.uk>
Date: Thu, 5 Dec 2024 15:41:57 +0000
Subject: [PATCH] setup for kafka, promethus, grafna

---
 .DS_Store          | Bin 0 -> 6148 bytes
 README.md          |  21 +++++++++++++++++++++
 alerts.yml         |  11 +++++++++++
 docker-compose.yml |  44 ++++++++++++++++++++++++++++++++++++++++++++
 prometheus.yml     |  14 ++++++++++++++
 5 files changed, 90 insertions(+)
 create mode 100644 .DS_Store
 create mode 100644 README.md
 create mode 100644 alerts.yml
 create mode 100644 docker-compose.yml
 create mode 100644 prometheus.yml

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..a81a688b5a712f7595e5234f018b21abc7e30e60
GIT binary patch
literal 6148
zcmeHKyGjE=6g{IUf<cI2VI%AZXdr*EN-QkIB88>qWeg_SsGFdLu!8tI{(@B+!GG`%
zw6xN5X9kl^Otcb_d&Ar_J9E#S-80Ng27uY_*NZ?NK$b-?vqblWNxzgSTktK*L?b!c
z&0@J0b$U~g+Mo)k0)J5fS-Tk&&_oMyYW?m#b4`!>I#H=qZAVqMWpAIF*SHyOrTgo1
z`+Fy2d&B+%smP&*2p#?^=%S7bzDEc3-F8&-BgwWTqZHn)2?;AWW&E-Ahc-i(%s!b7
zoHIiYR}&fT=Vs`U6>;=FbIr(L)+aLL$!Xw>oR+Q0*j>c-3u0U%PQQV9o8ad#u*{el
zDrjTV@&{?wLi1;=)T}+;ZICr1|M(oXhN}mD4rfM>X7u~$)cn4_@Fmp#xB{}iY1y1Z
z^{Rj>pbC5{Ap1kWA{cs19NMje&RzkC88%yET@G#G1Rg_=i9`0#jH41A)%Yuhadfr^
zJ}&f_ICOLvfB7(eWaDor#*WVXfenWV9jaFaRDrYti|#Qm=l{;^`+u6GPpW__@UIjw
znNqp5%}?@Y>(s}|SsSn%v4}}r;?Pp){Bdk6aulzzSYuxx6=LWyamW^${t>V;s8a=g
GRe=vA_n;sE

literal 0
HcmV?d00001

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..593d33e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,21 @@
+{\rtf1\ansi\ansicpg1252\cocoartf2757
+\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\froman\fcharset0 Times-Roman;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
+\deftab720
+\pard\pardeftab720\partightenfactor0
+
+\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
+\outl0\strokewidth0 \strokec2 run services\
+docker-compose up -d\
+\
+kafka ui\
+http://localhost:8080\
+\
+prometheus\
+http://localhost:9090\
+\
+\
+grafana\
+http://localhost:3000}
\ No newline at end of file
diff --git a/alerts.yml b/alerts.yml
new file mode 100644
index 0000000..85f7dca
--- /dev/null
+++ b/alerts.yml
@@ -0,0 +1,11 @@
+groups:
+  - name: KafkaAlerts
+    rules:
+      - alert: HighPartitionLag
+        expr: kafka_topic_partition_lag > 100
+        for: 1m
+        labels:
+          severity: critical
+        annotations:
+          summary: "High partition lag on {{ $labels.topic }}"
+          description: "Partition lag is {{ $value }} for topic {{ $labels.topic }}."
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..d26a713
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,44 @@
+version: '3.8'
+
+services:
+  zookeeper:
+    image: confluentinc/cp-zookeeper:latest
+    environment:
+      ZOOKEEPER_CLIENT_PORT: 2181
+    ports:
+      - "2181:2181"
+
+  kafka:
+    image: confluentinc/cp-kafka:latest
+    ports:
+      - "9092:9092"
+    environment:
+      KAFKA_BROKER_ID: 1
+      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
+      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
+    depends_on:
+      - zookeeper
+
+  prometheus:
+    image: prom/prometheus:latest
+    ports:
+      - "9090:9090"
+    volumes:
+      - ./prometheus.yml:/etc/prometheus/prometheus.yml
+
+  grafana:
+    image: grafana/grafana:latest
+    ports:
+      - "3000:3000"
+
+
+  kafka-ui:
+    image: provectuslabs/kafka-ui:latest
+    ports:
+      - "8080:8080"
+    environment:
+      KAFKA_CLUSTERS_0_NAME: local
+      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
+    depends_on:
+      - kafka
diff --git a/prometheus.yml b/prometheus.yml
new file mode 100644
index 0000000..3931a2e
--- /dev/null
+++ b/prometheus.yml
@@ -0,0 +1,14 @@
+global:
+  scrape_interval: 15s
+
+scrape_configs:
+  - job_name: 'kafka'
+    static_configs:
+      - targets: ['kafka:7071']
+
+  - job_name: 'zookeeper'
+    static_configs:
+      - targets: ['zookeeper:7071']
+
+rule_files:
+  - "alerts.yml"
-- 
GitLab