Skip to content

Dev#260

Merged
ms-0o0 merged 9 commits into
mainfrom
dev
Mar 17, 2026
Merged

Dev#260
ms-0o0 merged 9 commits into
mainfrom
dev

Conversation

@hyuuuun
Copy link
Copy Markdown
Contributor

@hyuuuun hyuuuun commented Mar 17, 2026

개요

관련 BackLog

Resolves: (Backlog Number, ...)

PR 유형

  • 새로운 기능 추가
  • 버그 수정
  • CSS 등 사용자 UI 디자인 변경
  • 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
  • 코드 리팩토링
  • 주석 추가 및 수정
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제

PR Checklist

  • 커밋 메시지 컨벤션에 맞게 작성했습니다.
  • 변경 사항에 대한 테스트를 했습니다.(버그 수정/기능에 대한 테스트).

Summary by CodeRabbit

  • New Features

    • Added structured request logging with traceId, endpoint patterns, HTTP methods, status codes, and latency metrics for improved debugging.
    • Automatic masking of sensitive fields (passwords, tokens, credentials, secrets) in logs.
    • Added database query performance monitoring and metrics collection.
  • Chores

    • Streamlined logging architecture and updated database logging configuration.

@hyuuuun hyuuuun requested a review from ms-0o0 March 17, 2026 02:14
@hyuuuun hyuuuun self-assigned this Mar 17, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 17, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5c288e31-bcfa-4fdb-ba90-3391ff529261

📥 Commits

Reviewing files that changed from the base of the PR and between edcd645 and d960248.

📒 Files selected for processing (8)
  • src/main/java/com/pooli/common/exception/GlobalExceptionHandler.java
  • src/main/java/com/pooli/common/filter/LoggingFilter.java
  • src/main/java/com/pooli/common/filter/RequestLoggingFilter.java
  • src/main/java/com/pooli/monitoring/config/MybatisMetricsConfig.java
  • src/main/java/com/pooli/monitoring/interceptor/MybatisMetricsInterceptor.java
  • src/main/java/com/pooli/monitoring/metrics/MybatisQueryMetrics.java
  • src/main/resources/application.yaml
  • src/main/resources/monitoring/logback-spring.xml

📝 Walkthrough

Walkthrough

This PR consolidates request logging functionality by merging RequestLoggingFilter into an enhanced LoggingFilter with structured MDC logging, sensitive data masking, and conditional body logging. It removes the separate RequestLoggingFilter class and simplifies GlobalExceptionHandler. Additionally, it introduces new MyBatis query metrics collection via a custom interceptor integrated with Micrometer.

Changes

Cohort / File(s) Summary
Request & Exception Logging Consolidation
src/main/java/com/pooli/common/exception/GlobalExceptionHandler.java, src/main/java/com/pooli/common/filter/LoggingFilter.java
Removed request body logging from GlobalExceptionHandler; enhanced LoggingFilter with MDC-based structured fields (apiUri, method, status, latency), traceId generation, regex-based sensitive field masking, body truncation, and conditional request_log emission based on status code.
Removed Filter
src/main/java/com/pooli/common/filter/RequestLoggingFilter.java
Deleted RequestLoggingFilter; its traceId and body-caching functionality is now integrated into LoggingFilter.
MyBatis Metrics Infrastructure
src/main/java/com/pooli/monitoring/config/MybatisMetricsConfig.java, src/main/java/com/pooli/monitoring/interceptor/MybatisMetricsInterceptor.java, src/main/java/com/pooli/monitoring/metrics/MybatisQueryMetrics.java
Added configuration class to register MyBatis interceptor; created new interceptor that captures query execution time and operation metadata; introduced metrics component that records query durations with percentile histograms and tags for mapper/operation.
Configuration
src/main/resources/application.yaml, src/main/resources/monitoring/logback-spring.xml
Switched MyBatis logging from stdout to NoLoggingImpl; updated deployment path comment in non-local profile.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant LoggingFilter
    participant SQLExecutor as MyBatis SQL<br/>Executor
    participant MybatisMetricsInterceptor
    participant MybatisQueryMetrics
    participant MeterRegistry

    Client->>LoggingFilter: HTTP Request
    LoggingFilter->>SQLExecutor: Process & Pass Request
    SQLExecutor->>MybatisMetricsInterceptor: Execute Query
    MybatisMetricsInterceptor->>MybatisMetricsInterceptor: Extract mapper & operation<br/>from statementId
    MybatisMetricsInterceptor->>MybatisMetricsInterceptor: Measure execution<br/>duration
    MybatisMetricsInterceptor->>MybatisQueryMetrics: record(mapper, operation, duration)
    MybatisQueryMetrics->>MybatisQueryMetrics: Build cache key:<br/>mapper.operation
    MybatisQueryMetrics->>MybatisQueryMetrics: Create/retrieve Timer<br/>with tags
    MybatisQueryMetrics->>MeterRegistry: Register Timer
    MybatisQueryMetrics->>MeterRegistry: Record duration
    MeterRegistry-->>MybatisQueryMetrics: Metrics stored
    MybatisMetricsInterceptor-->>SQLExecutor: Return result
    SQLExecutor-->>LoggingFilter: Query complete
    LoggingFilter->>LoggingFilter: Log request with MDC fields
    LoggingFilter-->>Client: HTTP Response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

Possibly related PRs

Suggested labels

feature

Suggested reviewers

  • ms-0o0
  • hyeonRS

Poem

🐰 Hops into logs with structured grace,
Masks secrets safe in cyberspace,
MyBatis queries now take flight,
With metrics glowing, metrics bright!
Consolidation hops with flair,
Cleaner code floats in the air! 🥕✨

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ms-0o0 ms-0o0 merged commit 15529c4 into main Mar 17, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants