From 1925240f805efc6b25b11e85a17a7f31faced67a Mon Sep 17 00:00:00 2001 From: leegwichan Date: Thu, 10 Jul 2025 15:25:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20=EC=99=B8=EB=B6=80=20API=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EB=A1=9C=EC=A7=81=EC=97=90=20=EC=84=B1?= =?UTF-8?q?=EB=8A=A5=20=EB=A9=94=ED=8A=B8=EB=A6=AD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/notifier/DiscordNotifier.java | 2 ++ .../com/debatetimer/client/oauth/OAuthClient.java | 3 +++ .../com/debatetimer/config/MonitoringConfig.java | 15 +++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 src/main/java/com/debatetimer/config/MonitoringConfig.java diff --git a/src/main/java/com/debatetimer/client/notifier/DiscordNotifier.java b/src/main/java/com/debatetimer/client/notifier/DiscordNotifier.java index 5f5c952f..0597deca 100644 --- a/src/main/java/com/debatetimer/client/notifier/DiscordNotifier.java +++ b/src/main/java/com/debatetimer/client/notifier/DiscordNotifier.java @@ -2,6 +2,7 @@ import com.debatetimer.exception.custom.DTInitializationException; import com.debatetimer.exception.errorcode.InitializationErrorCode; +import io.micrometer.core.annotation.Timed; import java.util.Arrays; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; @@ -34,6 +35,7 @@ private JDA initializeJda(String token) { } } + @Timed(value = "discord.send_error_message") public void sendErrorMessage(Throwable throwable) { TextChannel channel = jda.getTextChannelById(properties.getChannelId()); String errorMessage = throwable.toString(); diff --git a/src/main/java/com/debatetimer/client/oauth/OAuthClient.java b/src/main/java/com/debatetimer/client/oauth/OAuthClient.java index ed10dcf4..973f99c9 100644 --- a/src/main/java/com/debatetimer/client/oauth/OAuthClient.java +++ b/src/main/java/com/debatetimer/client/oauth/OAuthClient.java @@ -5,6 +5,7 @@ import com.debatetimer.dto.member.MemberInfo; import com.debatetimer.dto.member.OAuthToken; import com.debatetimer.exception.handler.OAuthClientErrorHandler; +import io.micrometer.core.annotation.Timed; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.http.HttpStatusCode; import org.springframework.http.MediaType; @@ -24,6 +25,7 @@ public OAuthClient(RestClient.Builder restClientBuilder, OAuthProperties oauthPr this.oauthProperties = oauthProperties; } + @Timed(value = "google.request_token") public OAuthToken requestToken(MemberCreateRequest request) { return restClient.post() .uri("https://oauth2.googleapis.com/token") @@ -34,6 +36,7 @@ public OAuthToken requestToken(MemberCreateRequest request) { .body(OAuthToken.class); } + @Timed(value = "google.request_member_info") public MemberInfo requestMemberInfo(OAuthToken response) { return restClient.get() .uri("https://www.googleapis.com/oauth2/v3/userinfo") diff --git a/src/main/java/com/debatetimer/config/MonitoringConfig.java b/src/main/java/com/debatetimer/config/MonitoringConfig.java new file mode 100644 index 00000000..cd2e365e --- /dev/null +++ b/src/main/java/com/debatetimer/config/MonitoringConfig.java @@ -0,0 +1,15 @@ +package com.debatetimer.config; + +import io.micrometer.core.aop.TimedAspect; +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MonitoringConfig { + + @Bean + public TimedAspect timedAspect(MeterRegistry registry) { + return new TimedAspect(registry); + } +} From b4303bff08d9f37f1da58485c376b9ade0688521 Mon Sep 17 00:00:00 2001 From: leegwichan Date: Fri, 11 Jul 2025 11:35:09 +0900 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20`TimedAspect`=20Bean=20=EC=9D=B4?= =?UTF-8?q?=20=EC=97=86=EC=9D=84=20=EA=B2=BD=EC=9A=B0=EC=97=90=EB=A7=8C=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=ED=95=98=EB=8F=84=EB=A1=9D=20=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/debatetimer/config/MonitoringConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/debatetimer/config/MonitoringConfig.java b/src/main/java/com/debatetimer/config/MonitoringConfig.java index cd2e365e..b3bced6d 100644 --- a/src/main/java/com/debatetimer/config/MonitoringConfig.java +++ b/src/main/java/com/debatetimer/config/MonitoringConfig.java @@ -2,6 +2,7 @@ import io.micrometer.core.aop.TimedAspect; import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -9,6 +10,7 @@ public class MonitoringConfig { @Bean + @ConditionalOnMissingBean(TimedAspect.class) public TimedAspect timedAspect(MeterRegistry registry) { return new TimedAspect(registry); }