diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 6964f3d..097ab9a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,11 +4,23 @@
-
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -54,7 +66,7 @@
-
+
@@ -185,8 +197,8 @@
-
+
@@ -257,7 +269,15 @@
1741496590754
-
+
+
+ 1741502933986
+
+
+
+ 1741502933986
+
+
@@ -282,7 +302,8 @@
-
+
+
@@ -292,6 +313,11 @@
67
+
+ file://$PROJECT_DIR$/microservices/course-service/src/main/java/io/javatab/microservices/core/course/domain/CourseService.java
+ 35
+
+
diff --git a/docker/docker-compose-base.yml b/docker/docker-compose-base.yml
index e5e8d3c..2245f7f 100644
--- a/docker/docker-compose-base.yml
+++ b/docker/docker-compose-base.yml
@@ -4,6 +4,10 @@ services:
mem_limit: 512m
environment:
- SPRING_PROFILES_ACTIVE=docker
+ logging:
+ driver: fluentd
+ options:
+ fluentd-address: 127.0.0.1:24224
networks:
- shared-network
#depends_on:
@@ -15,6 +19,10 @@ services:
mem_limit: 512m
environment:
- SPRING_PROFILES_ACTIVE=docker
+ logging:
+ driver: fluentd
+ options:
+ fluentd-address: 127.0.0.1:24224
networks:
- shared-network
#depends_on:
@@ -28,6 +36,10 @@ services:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=docker
+ logging:
+ driver: fluentd
+ options:
+ fluentd-address: 127.0.0.1:24224
networks:
- shared-network
@@ -38,6 +50,10 @@ services:
- "9000:9000"
environment:
- SPRING_PROFILES_ACTIVE=docker
+ logging:
+ driver: fluentd
+ options:
+ fluentd-address: 127.0.0.1:24224
networks:
- shared-network
diff --git a/docker/docker-compose-infra.yml b/docker/docker-compose-infra.yml
index d328dc0..2f617ee 100644
--- a/docker/docker-compose-infra.yml
+++ b/docker/docker-compose-infra.yml
@@ -43,35 +43,10 @@ services:
networks:
- shared-network
- prometheus:
- image: prom/prometheus:latest
- volumes:
- - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- - prometheus-data:/prometheus
- command:
- - '--config.file=/etc/prometheus/prometheus.yml'
- - '--storage.tsdb.path=/prometheus'
- ports:
- - "9090:9090"
- networks:
- - shared-network
-
- grafana:
- image: grafana/grafana:latest
- volumes:
- - grafana-data:/var/lib/grafana
- ports:
- - "3000:3000"
- environment:
- - GF_SECURITY_ADMIN_PASSWORD=admin
- depends_on:
- - prometheus
- networks:
- - shared-network
-
networks:
shared-network:
driver: bridge
volumes:
prometheus-data:
- grafana-data:
\ No newline at end of file
+ grafana-data:
+ loki-data:
\ No newline at end of file
diff --git a/docker/docker-compose-observability.yml b/docker/docker-compose-observability.yml
new file mode 100644
index 0000000..7100ae8
--- /dev/null
+++ b/docker/docker-compose-observability.yml
@@ -0,0 +1,64 @@
+services:
+ prometheus:
+ image: prom/prometheus:latest
+ volumes:
+ - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
+ - prometheus-data:/prometheus
+ command:
+ - '--config.file=/etc/prometheus/prometheus.yml'
+ - '--storage.tsdb.path=/prometheus'
+ ports:
+ - "9090:9090"
+ networks:
+ - shared-network
+
+ grafana:
+ image: grafana/grafana:latest
+ volumes:
+ - grafana-data:/var/lib/grafana
+ ports:
+ - "3000:3000"
+ environment:
+ - GF_SECURITY_ADMIN_PASSWORD=admin
+ depends_on:
+ - prometheus
+ networks:
+ - shared-network
+
+ loki:
+ image: grafana/loki:3.0.0
+ ports:
+ - "3100:3100"
+ command: -config.file=/etc/loki/local-config.yaml
+ volumes:
+ - ./loki/loki-config.yaml:/etc/loki/local-config.yaml
+ - loki-data:/loki
+ networks:
+ - shared-network
+
+ fluent-bit:
+ image: grafana/fluent-bit-plugin-loki:2.9.8
+ container_name: fluent-bit
+ ports:
+ - "24224:24224"
+ environment:
+ - LOKI_URL=http://loki:3100/loki/api/v1/push
+ volumes:
+ - ./fluent-bit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
+ networks:
+ - shared-network
+ tempo:
+ image: grafana/tempo:1.5.0
+ command: -config.file /etc/tempo-config.yml
+ ports:
+ - "4317:4317"
+ volumes:
+ - ./tempo/tempo.yml:/etc/tempo-config.yml
+
+networks:
+ shared-network:
+ driver: bridge
+volumes:
+ prometheus-data:
+ grafana-data:
+ loki-data:
\ No newline at end of file
diff --git a/docker/fluent-bit/fluent-bit.conf b/docker/fluent-bit/fluent-bit.conf
new file mode 100644
index 0000000..8593f12
--- /dev/null
+++ b/docker/fluent-bit/fluent-bit.conf
@@ -0,0 +1,15 @@
+[INPUT]
+ Name forward
+ Listen 0.0.0.0
+ Port 24224
+[Output]
+ Name grafana-loki
+ Match *
+ Url http://loki:3100/loki/api/v1/push
+ RemoveKeys source,container_id
+ Labels {job="fluent-bit"}
+ LabelKeys container_name
+ BatchWait 1s
+ BatchSize 1001024
+ LineFormat json
+ LogLevel info
\ No newline at end of file
diff --git a/docker/fluent-bit/parsers.conf b/docker/fluent-bit/parsers.conf
new file mode 100644
index 0000000..6fc36a2
--- /dev/null
+++ b/docker/fluent-bit/parsers.conf
@@ -0,0 +1,12 @@
+[PARSER]
+ Name logback_parser
+ Format regex
+ Regex ^(?