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..b3bced6d --- /dev/null +++ b/src/main/java/com/debatetimer/config/MonitoringConfig.java @@ -0,0 +1,17 @@ +package com.debatetimer.config; + +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; + +@Configuration +public class MonitoringConfig { + + @Bean + @ConditionalOnMissingBean(TimedAspect.class) + public TimedAspect timedAspect(MeterRegistry registry) { + return new TimedAspect(registry); + } +}