Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ jobs:
java-version: '21'
distribution: 'corretto'

- name: Gradle Wrapper 실행 권한 부여
run: chmod +x ./gradlew

- name: JAR 빌드
run: ./gradlew bootJar --no-daemon
run: ./gradlew bootJar --no-daemon --stacktrace -Dspring.profiles.active=prod

- name: Docker Hub 로그인
run: echo "${{ secrets.DOCKER_ACCESS_TOKEN }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
Expand Down
2 changes: 1 addition & 1 deletion alloy/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ services:
- ../.env
volumes:
- ./config.alloy:/etc/alloy/config.alloy
- /app/logs:/var/log/app
- /app/log:/var/log/app
command:
- "run"
- "--server.http.listen-addr=0.0.0.0:12345"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
Expand All @@ -20,11 +19,7 @@ public class ControllerLoggingAspect {

private static final int MAX_LOG_LENGTH = 500;

@Pointcut("execution(* com.recyclestudy..controller..*(..))")
public void controllerMethods() {
}

@Around("controllerMethods()")
@Around("LoggingPointcuts.controllerLayer()")
public Object logController(final ProceedingJoinPoint joinPoint) throws Throwable {
final MethodSignature signature = (MethodSignature) joinPoint.getSignature();
final String className = signature.getDeclaringType().getSimpleName();
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/com/recyclestudy/common/log/LoggingPointcuts.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.recyclestudy.common.log;

import org.aspectj.lang.annotation.Pointcut;

public class LoggingPointcuts {

@Pointcut("execution(* com.recyclestudy..controller..*(..))")
public void controllerLayer() {
}

@Pointcut("execution(* com.recyclestudy..service..*(..))")
public void serviceLayer() {
}

@Pointcut("execution(* com.recyclestudy..repository..*(..))")
public void repositoryLayer() {
}

@Pointcut("controllerLayer() || serviceLayer() || repositoryLayer()")
public void applicationLayers() {
}
}
36 changes: 36 additions & 0 deletions src/main/java/com/recyclestudy/common/trace/TracingAspect.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.recyclestudy.common.trace;

import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Scope;
import lombok.RequiredArgsConstructor;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Aspect
@Component
@RequiredArgsConstructor
@Order(Ordered.HIGHEST_PRECEDENCE)
public class TracingAspect {

private final Tracer tracer;

@Around("com.recyclestudy.common.log.LoggingPointcuts.applicationLayers()")
public Object trace(ProceedingJoinPoint joinPoint) throws Throwable {
String className = joinPoint.getSignature().getDeclaringType().getSimpleName();
String methodName = joinPoint.getSignature().getName();

String spanName = className + "::" + methodName;
Span span = tracer.spanBuilder(spanName).startSpan();

try (Scope scope = span.makeCurrent()) {
return joinPoint.proceed();
} finally {
span.end();
}
}
}
14 changes: 14 additions & 0 deletions src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,26 @@ spring:
enable: true
auth: true

server:
tomcat:
mbeanregistry:
enabled: true

management:
endpoints:
web:
exposure:
include: prometheus, health

metrics:
tags:
application: ${spring.application.name}

prometheus:
metrics:
export:
enabled: true

tracing:
sampling:
probability: 1.0
Expand Down