본문으로 건너뛰기
  1. Posts/

Grafana 대시보드 누락(단절?) 현상

NineKoo9
작성자
NineKoo9

성능 테스트를 진행하던 도중 Grafana의 모든 대시보드에서 끊김? 단절?이 나타나며 위 이미지와 같이 데이터가 누락되는 현상이 계속 발견되었습니다.

처음에는 애플리케이션의 Target DB 서버에 CPU부하가 100% 걸리는 테스트를 하던 도중 발생한 문제여서

DB 문제인가?

라는 생각을 했지만, DB 서버의 부하 문제를 해결한 후에도 테스트 진행중 같은 현상이 계속 나타났습니다.

게다가 Prometheus의 원리를 고려해보면, DB 접근이 없는데도 이런 현상이 발생한 것으로 보아 다른 원인이 있을 것입니다.

우선 성능 테스트 도중 Actuator의 metric 정보가 누락되어 데이터가 표시되지 않았는지 그리고 이것을 확인하기 위해 actuator/metrics URL로 직접 접속을 해보았습니다.

그런데 이때 metrics 값들이 정상적으로 도착했지만, 응답 시간이 대략 1~2초 정도로 지연되는 것을 느겼습니다. 이러한 지연이 의심스러워 성능 테스트를 종료한 후 다시 요청했을 때는 응답이 즉각적으로 이루어졌습니다.

아 !이거 타임아웃이 발생한거 같다.

Prometheus의 네트워크 설정을 살펴보면 타임아웃 값(scrape_timeout)은 기본적으로 10초이지만, 스크랩 하는 주기 값(scrape_interval)보다 클 수 없다고 합니다.

따라서 prometheus.yml 파일을 살펴보니 scrape_interval값을 1초로 설정한 것을 보았고 그 결과 타임아웃이 1초로 적용된 것이었습니다.

Prometheus 초기 설정 시, 빠른 변화를 확인하기 위해 scrape_interval 주기를 짧게 설정했습니다. 그러나 성능 테스트 과정에서 모든 스레드가 성능 테스트 요청을 처리하는 데 사용되면서 스레드 반환에도 시간이 증가했습니다. 이로 인해 Prometheus의 메트릭 요청을 처리하기 위한 스레드 획득 시간이 증가하고 응답 시간도 증가해 결국 1초라는 시간을 초과하여 타임아웃이 발생했습니다.

이후 이 값을 10초로 변경하여 설정하니 Grafana 대시보드에 데이터가 정상적으로 나타났습니다.