Skip to content

이경민 8주차 학습일지

KyungMin Lee edited this page Aug 18, 2024 · 1 revision

TroubleShooting: 그라파나가 우리를 배신한 날

🚨 문제 발생!

  • View Server의 API를 활용해 그라파나에서 로그를 보려고 세팅을 진행함
  • docker로 jar를 실행하는 상황에서 @RequestParam의 뒤에 값이 무시되는 현상 발생
image

🛠️ 원인 찾기

  • 원인 코드
@GetMapping("/{appKey}")
public Mono<CursorPaginationResult> getLogs(@PathVariable String appKey,
    @RequestParam(name = "cursor", defaultValue = "-1", required = false) Long cursor,
    @RequestParam(name = "size", defaultValue = "10", required = false) Integer size) {
    log.info("appKey: {}, cursor: {}, size: {}", appKey, cursor, size);
    return logViewService.findLogs(appKey, cursor, size + 1)
        .collectList()
        .map(data -> CursorPaginationResult.of(data, size));
}

가설 산정하기

❓ Spring WebFlux의 문제이다? ✅ 로컬 환경에서는 정상적으로 curl을 처리함

❓ 다른 JDK를 사용해서 문제가 발생한건가?

  • 빌드 환경은 Liberica JDK 17
  • 실행 환경은 OpenJDK 17

✅ 실행 환경 비교

  • OpenJDK 17
  • Liberica JDK 17
  • Corretto JDK 17 모두 동일함

❓ 아키텍처 문제인 것인가?

  • 빌드 환경: ARM
  • 실행 환경: x86

✅ 아키텍처 비교

  • arm → arm
  • arm → x86
  • x86 → arm
  • x86 → x86

모두 동일함

💡 결과는?

❓ MacOS와 Linux(Ubuntu)의 차이인가?

  • Ubuntu 환경에서 CURL 작성시 “”이 누락됨을 확인

    • &에 대한 인코딩이 이뤄지지 않음!
  • 그라파나 Infinity 플러그인에서 제공하는 Beta 기능인 Pagination 옵션을 전송할 때 URL 인코딩이 되지 않고 전달됨..

👼 개인 활동을 기록합시다.

개인 활동 페이지

🧑‍🧑‍🧒‍🧒 그룹 활동을 기록합시다.

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally