Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] feat#229 모니터링 인터셉터 구현 #270

Merged
merged 3 commits into from
Nov 26, 2024

Conversation

DongHoonYu96
Copy link
Collaborator

@DongHoonYu96 DongHoonYu96 commented Nov 26, 2024

➕ 이슈 번호


🔎 작업 내용

이 풀 리퀘스트는 백엔드 애플리케이션의 WebSocket 이벤트와 서비스 메서드에 대한 포괄적인 로깅 및 추적 기능을 도입합니다. 변경 사항에는 소켓 이벤트를 로깅하기 위한 새로운 인터셉터와 메서드 호출 및 실행 시간을 추적하기 위한 데코레이터 구현이 포함됩니다.
주요 변경 사항:

로깅 및 추적 구현:

  • BE/src/common/interceptor/SocketEventLoggerInterceptor.ts: WebSocket 이벤트와 서비스 메서드 호출을 로깅하기 위한 SocketEventLoggerInterceptor 추가. AsyncLocalStorage를 사용하여 추적 컨텍스트를 관리하는 TraceStoreTraceContext 클래스 도입. 서비스 메서드와 클래스를 추적하기 위한 TraceTraceClass 데코레이터 구현.

WebSocket 게이트웨이 통합:

  • BE/src/game/game.gateway.ts: 소켓 이벤트를 로깅하기 위해 WebSocket 게이트웨이에 SocketEventLoggerInterceptor 통합. 테스트 목적으로 느린 이벤트를 시뮬레이션하고 로깅하기 위한 새로운 handleSlowEvent 메서드 추가.

서비스 클래스에서의 추적:

  • BE/src/game/service/game.chat.service.ts: 모든 메서드의 추적을 활성화하기 위해 GameChatService 클래스에 TraceClass 데코레이터 적용.
  • BE/src/game/service/game.room.service.ts: 메서드 추적을 위해 GameRoomService 클래스에 TraceClass 데코레이터 적용.
  • BE/src/game/service/game.service.ts: GameService 클래스에 TraceClass 데코레이터를 적용하고, 실행을 추적하기 위해 longBusinessLogic 메서드에 Trace 데코레이터 적용.
  • BE/src/game/service/quiz.cache.service.ts: 메서드 호출을 추적하기 위해 QuizCacheService 클래스에 TraceClass 데코레이터 적용.

🖼 참고 이미지

image


🎯 리뷰 요구사항 (선택)

  • 특별히 봐줬으면 하는 부분이 있다면 적어주세요

✅ Check List

  • merge할 브랜치의 위치를 확인했나요?
  • Label을 지정했나요?

@DongHoonYu96 DongHoonYu96 requested a review from Copilot November 26, 2024 07:50
@DongHoonYu96 DongHoonYu96 self-assigned this Nov 26, 2024
@DongHoonYu96 DongHoonYu96 changed the title [BE] feat#229 [BE] feat#229 모니터링 구현 Nov 26, 2024
@DongHoonYu96 DongHoonYu96 changed the title [BE] feat#229 모니터링 구현 [BE] feat#229 모니터링 인터셉터 구현 Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 5 out of 6 changed files in this pull request and generated no suggestions.

Files not reviewed (1)
  • BE/src/game/game.gateway.ts: Evaluated as low risk
@DongHoonYu96 DongHoonYu96 merged commit 49fd125 into boostcampwm-2024:dev-be Nov 26, 2024
1 check failed
Copy link
Collaborator

@ijun17 ijun17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ㄷㄷ

@DongHoonYu96 DongHoonYu96 deleted the feature-be-#229 branch November 26, 2024 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants