diff --git a/.gitignore b/.gitignore
index 38fb279..2775fa6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,7 +23,7 @@ logs/
############################################
# Environment / Secrets
############################################
-.env
+.env.dev
.env.*
*.env
*.key
diff --git a/docker-compose.yml b/docker-compose.yml
index 6f81612..91e1838 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,3 @@
-version: "3.9"
-
services:
postgres:
@@ -15,7 +13,7 @@ services:
volumes:
- vimaltech_pgdata:/var/lib/postgresql/data
healthcheck:
- test: [ "CMD-SHELL", "pg_isready -U contactuser -d contactdb" ]
+ test: ["CMD-SHELL", "pg_isready -U contactuser -d contactdb"]
interval: 10s
timeout: 5s
retries: 5
@@ -28,9 +26,30 @@ services:
condition: service_healthy
ports:
- "8080:8080"
+ env_file:
+ - .env.prod
environment:
- SPRING_PROFILES_ACTIVE: dev
+ SPRING_PROFILES_ACTIVE: prod
+ restart: unless-stopped
+
+ prometheus:
+ image: prom/prometheus
+ container_name: vimaltech-prometheus
+ volumes:
+ - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
+ ports:
+ - "9090:9090"
+ restart: unless-stopped
+
+ grafana:
+ image: grafana/grafana
+ container_name: vimaltech-grafana
+ ports:
+ - "3000:3000"
+ volumes:
+ - grafana_data:/var/lib/grafana
restart: unless-stopped
volumes:
- vimaltech_pgdata:
\ No newline at end of file
+ vimaltech_pgdata:
+ grafana_data:
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 086208a..3bc10eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,6 +110,16 @@
org.springframework.boot
spring-boot-starter-data-redis
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ io.micrometer
+ micrometer-registry-prometheus
+
diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml
new file mode 100644
index 0000000..76ed345
--- /dev/null
+++ b/prometheus/prometheus.yml
@@ -0,0 +1,10 @@
+global:
+ scrape_interval: 15s
+
+scrape_configs:
+ - job_name: 'contact-api'
+
+ metrics_path: /actuator/prometheus
+
+ static_configs:
+ - targets: ['contact-api:8080']
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index a6335c0..d0b95f3 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -35,4 +35,18 @@ logging:
root: WARN
com.vimaltech.contactapi: INFO
org.springframework: WARN
- org.hibernate: WARN
\ No newline at end of file
+ org.hibernate: WARN
+
+management:
+ endpoints:
+ web:
+ exposure:
+ include: health,info,prometheus
+
+ endpoint:
+ health:
+ show-details: never
+
+ metrics:
+ tags:
+ application: contact-api
\ No newline at end of file