From 5cd038537671674ef248c9c3b822f3872cb0fc40 Mon Sep 17 00:00:00 2001
From: Michael Schenkelberger <michael.schenkelberger@smail.inf.h-brs.de>
Date: Sat, 6 Nov 2021 09:42:56 +0000
Subject: [PATCH] first initial commit

---
 NodeExporter_cAdvisor/docker-compose.yml | 14 ++++
 ProTest/docker-compose.yml               | 94 ++++++++++++++++++++++++
 ProTest/grafana/config.monitoring        |  2 +
 Whoami/docker-compose.yml                | 51 +++++++++++++
 mywebsite/app.py                         | 45 ++++++++++++
 mywebsite/docker-compose.yml             | 14 ++++
 6 files changed, 220 insertions(+)
 create mode 100644 NodeExporter_cAdvisor/docker-compose.yml
 create mode 100644 ProTest/docker-compose.yml
 create mode 100644 ProTest/grafana/config.monitoring
 create mode 100644 Whoami/docker-compose.yml
 create mode 100644 mywebsite/app.py
 create mode 100644 mywebsite/docker-compose.yml

diff --git a/NodeExporter_cAdvisor/docker-compose.yml b/NodeExporter_cAdvisor/docker-compose.yml
new file mode 100644
index 0000000..c4bab3f
--- /dev/null
+++ b/NodeExporter_cAdvisor/docker-compose.yml
@@ -0,0 +1,14 @@
+version: "3.9"
+services:
+  app:
+    image: "jennerwein/miniwhoami"
+    ports:
+      - "6456:80"
+    networks:
+      my_ipv6:
+        ipv6_address: "2001:638:408:200:fc59:cafe:0:2222"
+
+networks:
+  my_ipv6:
+    external:
+      name: my_ipv6
diff --git a/ProTest/docker-compose.yml b/ProTest/docker-compose.yml
new file mode 100644
index 0000000..3212fdb
--- /dev/null
+++ b/ProTest/docker-compose.yml
@@ -0,0 +1,94 @@
+version: "3.9"
+
+volumes:
+    prometheus_data: {}
+    grafana_data: {}
+
+services:
+  prometheus:
+    image: "prom/prometheus"
+    volumes:
+      - ./prometheus/:/etc/prometheus/
+      - prometheus_data:/prometheus
+    command:
+      - '--config.file=/etc/prometheus/prometheus.yml'
+      - '--storage.tsdb.path=/prometheus'
+      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
+      - '--web.console.templates=/usr/share/prometheus/consoles'
+    networks:
+      my_ipv6:
+        ipv6_address: "2001:638:408:200:fc59:cafe::11"
+    ports:
+      - 9090:9090
+    restart: always
+
+  node-exporter:
+    image: prom/node-exporter
+    volumes:
+      - /proc:/host/proc:ro
+      - /sys:/host/sys:ro
+      - /:/rootfs:ro
+    command: 
+      - '--path.procfs=/host/proc' 
+      - '--path.sysfs=/host/sys'
+      - --collector.filesystem.ignored-mount-points
+      - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
+    ports:
+      - 9100:9100
+    networks:
+      - my_ipv6
+    restart: always
+    deploy:
+      mode: global
+
+  alertmanager:
+    image: prom/alertmanager
+    ports:
+      - 9093:9093
+    volumes:
+      - ./alertmanager/:/etc/alertmanager/
+    networks:
+      - my_ipv6
+    restart: always
+    command:
+      - '--config.file=/etc/alertmanager/config.yml'
+      - '--storage.path=/alertmanager'
+#    deploy:
+#      placement:
+#        constraints:
+#          - node.hostname == ${HOSTNAME}
+  cadvisor:
+    image: gcr.io/cadvisor/cadvisor
+    volumes:
+      - /:/rootfs:ro
+      - /var/run:/var/run:rw
+      - /sys:/sys:ro
+      - /var/lib/docker/:/var/lib/docker:ro
+    ports:
+      - 8080:8080
+    networks:
+      - my_ipv6
+    restart: always
+    deploy:
+      mode: global
+
+  grafana:
+    image: grafana/grafana
+    user: "472"
+    depends_on:
+      - prometheus
+    ports:
+      - 3000:3000
+    volumes:
+      - grafana_data:/var/lib/grafana
+      - ./grafana/provisioning/:/etc/grafana/provisioning/
+    env_file:
+      - ./grafana/config.monitoring
+    networks:
+      - my_ipv6
+    restart: always
+
+networks:
+  my_ipv6:
+    external:
+      name: my_ipv6
diff --git a/ProTest/grafana/config.monitoring b/ProTest/grafana/config.monitoring
new file mode 100644
index 0000000..f12466b
--- /dev/null
+++ b/ProTest/grafana/config.monitoring
@@ -0,0 +1,2 @@
+GF_SECURITY_ADMIN_PASSWORD=foobar
+GF_USERS_ALLOW_SIGN_UP=false
diff --git a/Whoami/docker-compose.yml b/Whoami/docker-compose.yml
new file mode 100644
index 0000000..21fa1d5
--- /dev/null
+++ b/Whoami/docker-compose.yml
@@ -0,0 +1,51 @@
+version: "3.9"
+services:
+  whoami:
+    image: "jennerwein/whoami"
+    ports:
+      - "6321:6321"
+                  
+  whoami-node:
+    image: "jennerwein/whoami-node"
+    networks:
+      my_ipv6:
+        ipv6_address: "2001:638:408:200:fc59:cafe:0:100"
+
+  miniwhoami:
+    image: "jennerwein/miniwhoami"
+    networks:
+      my_ipv6:
+        ipv6_address: "2001:638:408:200:fc59:cafe:0:101"
+
+  node-exporter:
+    image: prom/node-exporter
+    restart: always
+    container_name: node-exporter
+    ports:
+      - "9100:9100"
+
+  cadvisor:
+    image: gcr.io/cadvisor/cadvisor:latest
+    restart: always
+    container_name: cadvisor
+    ports:
+      - "8080:8080"
+    volumes:
+      - /:/rootfs:ro
+      - /var/run:/var/run:rw
+      - /sys:/sys:ro
+      - /var/lib/docker/:/var/lib/docker:ro
+    depends_on:
+      - redis
+
+  redis:
+    image: redis:latest
+    restart: always
+    container_name: redis
+    ports:
+      - "6379:6379"
+
+networks:
+  my_ipv6:
+    external:
+      name: my_ipv6
diff --git a/mywebsite/app.py b/mywebsite/app.py
new file mode 100644
index 0000000..63c7199
--- /dev/null
+++ b/mywebsite/app.py
@@ -0,0 +1,45 @@
+import time
+
+import redis
+from flask import Flask
+
+app = Flask(__name__)
+cache = redis.Redis(host='redis', port=6379)
+
+def get_hit_count():
+    retries = 5
+    while True:
+        try:
+            return cache.incr('hits')
+        except redis.exceptions.ConnectionError as exc:
+            if retries == 0:
+                raise exc
+            retries -= 1
+            time.sleep(0.5)
+
+@app.route('/')
+def hello():
+    count = get_hit_count()
+    return 'Hello World! I have been seen {} times.\n'.format(count)import time
+
+import redis
+from flask import Flask
+
+app = Flask(__name__)
+cache = redis.Redis(host='redis', port=6379)
+
+def get_hit_count():
+    retries = 5
+    while True:
+        try:
+            return cache.incr('hits')
+        except redis.exceptions.ConnectionError as exc:
+            if retries == 0:
+                raise exc
+            retries -= 1
+            time.sleep(0.5)
+
+@app.route('/')
+def hello():
+    count = get_hit_count()
+    return 'Hello World! I have been seen {} times.\n'.format(count)
diff --git a/mywebsite/docker-compose.yml b/mywebsite/docker-compose.yml
new file mode 100644
index 0000000..c4bab3f
--- /dev/null
+++ b/mywebsite/docker-compose.yml
@@ -0,0 +1,14 @@
+version: "3.9"
+services:
+  app:
+    image: "jennerwein/miniwhoami"
+    ports:
+      - "6456:80"
+    networks:
+      my_ipv6:
+        ipv6_address: "2001:638:408:200:fc59:cafe:0:2222"
+
+networks:
+  my_ipv6:
+    external:
+      name: my_ipv6
-- 
GitLab