From 4a9001a39614b88b7e1bdc409b11301bb74d3bcb Mon Sep 17 00:00:00 2001 From: Marc Gorzala Date: Mon, 21 Nov 2022 08:18:27 +0100 Subject: [PATCH] first prometheus integration --- .dockerignore | 2 ++ Dockerfile | 2 +- docker-compose.yml | 20 +++++++++++++++++++ pom.xml | 4 ++++ prometheus.yml | 6 ++++++ .../dancer/core/config/SecurityConfig.java | 4 +++- src/main/resources/application.yml | 15 ++++++++++++-- 7 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 .dockerignore create mode 100644 prometheus.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..607fc8f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +* +!target \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9dd85d1..3b70f93 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM openjdk:17-slim -ADD ./target/dancer.jar /dancer.jar +ADD target/dancer.jar /dancer.jar CMD ["java", "--enable-preview", "-jar", "/dancer.jar"] EXPOSE 8080 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index c826fcd..dc2ce31 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,18 @@ version: '3.8' services: + + dancer: + build: ./ + ports: + - "8080:8080" + - "8081:8081" + - "5005:5005" + depends_on: + - dancer-db + environment: +# https://ckinan.com/blog/remote-debug-spring-boot-docker-intellij/: + - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 dancer-db: image: postgres:14 restart: always @@ -23,3 +35,11 @@ services: PGADMIN_DEFAULT_PASSWORD: secret volumes: - ./volumes/pg-admin-data:/var/lib/pgadmin + + prometheus: + image: prom/prometheus + ports: + - "9090:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + diff --git a/pom.xml b/pom.xml index f7577e3..3d01de3 100644 --- a/pom.xml +++ b/pom.xml @@ -143,6 +143,10 @@ logback-jackson 0.1.5 + + io.micrometer + micrometer-registry-prometheus + diff --git a/prometheus.yml b/prometheus.yml new file mode 100644 index 0000000..170507d --- /dev/null +++ b/prometheus.yml @@ -0,0 +1,6 @@ +scrape_configs: + - job_name: 'spring-actuator' + metrics_path: '/actuator/prometheus' + scrape_interval: 5s + static_configs: + - targets: ['dancer:8081'] \ No newline at end of file diff --git a/src/main/java/net/dancier/dancer/core/config/SecurityConfig.java b/src/main/java/net/dancier/dancer/core/config/SecurityConfig.java index ddca664..4f7999f 100644 --- a/src/main/java/net/dancier/dancer/core/config/SecurityConfig.java +++ b/src/main/java/net/dancier/dancer/core/config/SecurityConfig.java @@ -61,7 +61,9 @@ protected void configure(HttpSecurity http) throws Exception { .authorizeRequests() .antMatchers("/authentication/**", "/profile/checkDancerNameAvailability/*", - "/eventlog/**") + "/eventlog/**", + "/actuator/**" + ) .permitAll() .anyRequest() .authenticated(); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index dc9a653..65ea03e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,7 @@ spring: hibernate: ddl-auto: validate datasource: - url: jdbc:postgresql://localhost:5432/dancer + url: jdbc:postgresql://dancer-db:5432/dancer username: dancer password: dancer liquibase: @@ -69,4 +69,15 @@ logging: core: INFO web: filter: - CommonsRequestLoggingFilter: DEBUG \ No newline at end of file + CommonsRequestLoggingFilter: DEBUG + +management: + server: + port: 8081 + endpoints: + web: + exposure: + include: + - health + - beans + - prometheus \ No newline at end of file