From 861acfa6a3559f4aa950da6eb4d8e746b1b84e93 Mon Sep 17 00:00:00 2001
From: deyuna <deyuna.arham@ui.ac.id>
Date: Sun, 12 Jun 2022 21:15:24 +0700
Subject: [PATCH] menambahkan readme, implement profiling

---
 README.md                                        | 16 +++++++++++++---
 build.gradle                                     |  2 ++
 .../appuser/security/PasswordEncoder.java        |  2 --
 .../configuration/WebSecurityConfig.java         |  2 ++
 src/main/resources/application.properties        |  2 ++
 5 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index d2b6d25..21e8cb4 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ versi : 1.0.0
 ## Tautan Aplikasi
 https://deadliners.herokuapp.com
 
-_Project ini bertujuan untuk menyediakan wadah bagi mahasiswa untuk saling berkomunikasi, berkolaborasi, dan bekerja sama khususnya dalam ruang lingkup kegiatan akademis di perkuliahan._
+Project ini bertujuan untuk menyediakan wadah bagi mahasiswa untuk saling berkomunikasi, berkolaborasi, dan bekerja sama khususnya dalam ruang lingkup kegiatan akademis di perkuliahan._
 
 ## Fitur yang akan release :
 Sprint 1
@@ -37,8 +37,18 @@ Sprint 2
 * Implementasi Admin Authorization
 * Implementasi TodoList
 
-  Sprint 3
+Sprint 3
 * Implementasi Forum & Comment
 * Implementasi Notifikasi User
 * Implementasi Halaman Profile
-* Implementasi Microservices
\ No newline at end of file
+* Implementasi Microservices
+* Implementasi Profiling
+
+## Profiling :
+
+Berikut adalah hasil profiling kami. Berdasarkan data ini kami melihat bahwa page yang paling lama response timenya adalah project page.
+Alasannya waktu responsenya lama adalah untuk bisa menampilkan suatu halaman project, aplikasi membutuhkan pemanggilan forum, todo list, member, pending member, dan link.
+Cara untuk mengatasi hal tersebut adalah dengan menerapkan proses asynchronous khususnya dengan menggunakan CompletableFuture pada Java terhadap pemanggilan data-data tersebut.
+Hal ini bisa dilakukan karena data-data tersebut independent.
+
+![Grafana](https://cdn.discordapp.com/attachments/985542145589018654/985542185896255488/Screen_Shot_2022-06-12_at_20.49.03.png)
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index e459254..792b92c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,6 +22,8 @@ repositories {
 }
 
 dependencies {
+    implementation 'org.springframework.boot:spring-boot-starter-actuator'
+    implementation 'io.micrometer:micrometer-registry-prometheus'
     implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
     implementation 'org.springframework.boot:spring-boot-starter-security'
     implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
diff --git a/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java b/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
index 94ff2dc..9896ef7 100644
--- a/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
+++ b/src/main/java/com/id/ui/cs/deadliners/appuser/security/PasswordEncoder.java
@@ -1,12 +1,10 @@
 package com.id.ui.cs.deadliners.appuser.security;
 
-import lombok.NoArgsConstructor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
 @Configuration
-@NoArgsConstructor
 public class PasswordEncoder {
 
     @Bean
diff --git a/src/main/java/com/id/ui/cs/deadliners/appuser/security/configuration/WebSecurityConfig.java b/src/main/java/com/id/ui/cs/deadliners/appuser/security/configuration/WebSecurityConfig.java
index 38de9f3..7ec094f 100644
--- a/src/main/java/com/id/ui/cs/deadliners/appuser/security/configuration/WebSecurityConfig.java
+++ b/src/main/java/com/id/ui/cs/deadliners/appuser/security/configuration/WebSecurityConfig.java
@@ -27,6 +27,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/css/**", "/js/**", "/images/**").permitAll()
                 .antMatchers("/").permitAll()
                 .antMatchers("/signup").permitAll()
+                .antMatchers("/actuator").permitAll()
+                .antMatchers("/actuator/prometheus").permitAll()
                 .anyRequest().authenticated()
                 .and()
                 .formLogin().loginPage("/login").permitAll().usernameParameter("email").defaultSuccessUrl("/", true)
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 504a091..695b58d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -4,4 +4,6 @@ spring.datasource.password=117fde584215d33d5f5b4268c3ce6070a1b0a75432fef738811d5
 spring.datasource.driverClassName=org.postgresql.Driver
 spring.jpa.hibernate.ddl-auto=update
 
+management.endpoints.web.exposure.include=*
+
 sonar.scm.disabled=true
\ No newline at end of file
-- 
GitLab