You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
쉽게 이야기해서 게이지는 오르락 내리락 하는 값이고, 카운터는 특정 이벤트가 발생할 때 마다 그 수를 계속 누적하는 값이다.
게이지(Guage)
게이지는 오르고 내리고 하는 값이다. 게이지는 현재 상태를 그대로 출력하면 된다.
- 예를 들어서 대표적인 게이지인 CPU 사용량( system_cpu_usage )을 생각해보자. CPU 사용량의 현재 상태를 계속 측정하고 그 값을 그대로 그래프에 출력하면 과거부터 지금까지의 CPU 사용량을 확인할 수 있다.
- 게이지는 가장 단순하고 사용하기 쉬운 메트릭이다. 크게 고민하지 않고 있는 그대로를 사용하면 된다.
카운터(Counter)
카운터는 단순하게 증가하는 단일 누적 값이다. 예를 들어서 고객의 HTTP 요청수를 떠올려 보면 바로 이해가 될 것이다. HTTP 요청을 그래프로 표현해보자.
계속 증가하는 그래프
http_server_requests_seconds_count{ur="/log"}
HTTP 요청 메트릭을 그래프로 표현해보자. 카운터는 계속 누적해서 증가하는 값이다. 따라서 계속 증가하는 그래프만보게 될 것이다. 이렇게 증가만 하는 그래프에서는 특정 시간에 얼마나 고객의 요청이 들어왔는지 한눈에 확인하기 매우 어렵다. 이런 문제를 해결하기 위해 increase() , rate() 같은 함수를 지원한다.
invrease()
increase() 를 사용하면 이런 문제를 해결할 수 있다. 지정한 시간 단위별로 증가를 확인할 수 있다. 마지막에 [시간] 을 사용해서 범위 벡터를 선택해야 한다. increase(http_server_requests_seconds_count{uri="/log"}[1m])
시간 단위 요청 그래프
분당 얼마나 고객의 요청이 어느정도 증가했는지 한 눈에 파악할 수 있다.
rate()
범위 백터에서 초당 평균 증가율을 계산한다.
increase() 가 숫자를 직접 카운트 한다면, rate() 는 여기에 초당 평균을 나누어서 계산한다.
rate(data[1m]) 에서 [1m] 이라고 하면 60초가 기준이 되므로 60을 나눈 수이다.
rate(data[2m]) 에서 [2m] 이라고 하면 120초가 기준이 되므로 120을 나눈 수이다.
irate()
rate 와 유사한데, 범위 벡터에서 초당 순간 증가율을 계산한다. 급격하게 증가한 내용을 확인하기 좋다. 자세한 계산 공식은 공식 메뉴얼을 참고하자.
정리
게이지: 값이 계속 변하는 게이지는 현재 값을 그대로 그래프로 표현하면 된다.
카운터: 값이 단조롭게 증가하는 카운터는 increase() , rate() 등을 사용해서 표현하면 된다. 이렇게 하면 카운터
에서 특정 시간에 얼마나 고객의 요청이 들어왔는지 확인할 수 있다.
그라파나 설치
그라파나 대시보드 만들기
이번시간에는 그라파나를 사용해서 주요 메트릭을 대시보드로 만들어보자
먼저 다음 3가지를 꼭 수행해야 함
애플리케이션 실행
프로메테우스 실행
그라파나 실행
대시보드 저장
왼쪽 Dashboards 메뉴 선택
New 버튼 선택 New Dashboard 선택
오른쪽 상단의 Save dashboard 저장 버튼(disk 모양) 선택
Dashboard name: hello dashboard를 입력하고 저장
대시보드 확인
왼쪽 Dashboards 메뉴 선택
앞서 만든 hello dashboard 선택
패널 만들기
대시보드에 패널 만들기
대시보드가 큰 틀이라면 패널은 그 안에 모듈처럼 들어가는 실제 그래프를 보여주는 컴포넌트이다.
오른쪽 상단의 Add panel 버튼(차트 모양) 선택
Add a new panel 메뉴 선택
패널의 정보를 입력할 수 있는 화면이 나타난다.
아래에 보면 Run queries 버튼 오른쪽에 Builder , Code 라는 버튼이 보이는데, Code 를 선택하자.
Enter a PromQL query... 이라는 부분에 메트릭을 입력하면 된다.
CPU 메트릭 만들기
다음 메트릭을 패널에 추가해보자.
system_cpu_usage : 시스템의 CPU 사용량
process_cpu_usage : JVM 프로세스 CPU 사용량
PromQL 에 system_cpu_usage 를 입력하고 Run queries 버튼을 선택하자. 패널에 시스템 CPU 사용량을 그래프로 확인할 수 있다.
process_cpu_usage 도 하나의 그래프에서 함께 확인하자. 이렇게 하려면 화면 하단의 + Query 버튼을 선택해야한다.
추가한 부분의 PromQL 에 process_cpu_usage 를 입력하고 Run queries 버튼을 선택하자
패널에 프로세스 CPU 사용량이 추가된 것을 확인할 수 있다.
그래프의 데이터 이름 변경
패널 그래프 하단을 보면 범례(Legend)라고 하는 차트에 제공하는 데이터 종류를 구분하는 텍스트가 JSON으로 표시 되어 있다. 이 부분을 수정해보자.
system_cpu_usage 를 입력한 곳에 가서 하단의 Options 를 선택한다.
Legend 를 선택하고 Custom을 선택한다. system cpu 를 입력한다.
process_cpu_usage 를 입력한 곳에 가서 하단의 Options 를 선택한다.
Legend 를 선택하고 Custom을 선택한다. process cpu 를 입력한다.
패널 이름 설정
오른쪽에 보면 Panel options 라는 부분을 확인할 수 있다. 다음과 같이 수정하자
Title : CPU 사용량
패널 저장하기
화면 오른쪽 상단의 Save 또는 Apply 버튼을 선택한다.
디스크 사용량 추가하기
패널을 추가하고 다음 항목을 입력하자
패널 옵션
Title : 디스크 사용량
PromQL
disk_total_bytes
Legend : 전체 용량
+Query 로 다음을 추가하자
disk_total_bytes - disk_free_bytes
Legend : 사용 용량
참고: 사용 디스크 용량 = 전체 디스크 용량 - 남은 디스크 용량
그래프 데이터 사이즈 변경
그래프를 보면 데이터 사이즈가 byte로 보이기 때문에 불편할 것이다. 이것을 변경하려면 오른쪽 옵션 창을 확인하자
Standard options Unit Data bytes(SI) 를 선택하자.
GB, TB 단위로 읽기 편하게 변한 것을 확인할 수 있다.
최소값 변경
그래프는 현재 상태에 최적화가 된다. 하지만 디스크 사용량은 0부터 시작하는 것도 좋겠다.
Standard options Min 0 을 선택하자.
그래프가 0부터 시작하는 것을 확인할 수 있다.
정리
지금까지 CPU 사용량, 디스크 사용량 메트릭을 대시보드에 추가했다. 이제 앞서 학습한 다음과 같은 메트릭을 하나하나 추가하면 된다.
JVM 메트릭
시스템 메트릭
애플리케이션 시작 메트릭
스프링 MVC
톰캣 메트릭
데이터 소스 메트릭
로그 메트릭
기타 메트릭
그런데 이렇게 하나하나 직접 대시보드를 입력하는 것도 참으로 힘든 일이다. 그라파나는 이미 만들어둔 대시보드를 가져다가 사용할 수 있는 기능을 제공한다.
그라파나 - 공유 대시보드 활용
다음 사이트에 접속하자 https://grafana.com/grafana/dashboards
이미 누군가 만들어둔 수 많은 대시보드가 공개되어 있다. 우리는 스프링 부트와 마이크로미터를 사용해서 만든 대시보드를 가져다가 사용해보자
검색창에 spring이라고 검색해보면 다양한 대시보드를 확인할 수 있다.
그 중에 인기 있고, 동작하는 다음 대시보드를 불러와서 사용해보자.
스프링 부트 시스템 모니터 대시보드 불러오기
https://grafana.com/grafana/dashboards/11378-justai-system-monitor/
사이트에 접속한 다음에 Copy Id to clipboard 를 선택하자. 또는 ID: 11378 이라고 되어 있는 부분의 숫자를
저장하자.
대시보드 불러오기
그라파나에 접속하자
왼쪽 Dashboards 메뉴 선택
New 버튼 선택 Import 선택
불러올 대시보드 숫자( 11378 )를 입력하고 Load 버튼 선택
Prometheus 데이터소스를 선택하고 Import 버튼 선택 그라파나에 접속하자
대시보드를 확인해보면 거의 대부분의 메트릭을 대시보드에 표현한 것을 확인할 수 있다. 각각의 항목들을 보고 대시보드를 어떻게 구성해야 하는지도 학습할 수 있다. 참고로 일부 데이터의 경우 스프링 부트나 기타 라이브러리의 버전이 변함에 따라서 동작하지 않는 기능들도 있다. 이런 부분들은 수정해서 사용하자.
불러온 대시보드 수정하기
대시보드를 수정하려면 먼저 수정모드로 변경해야 한다.
오른쪽 상단의 설정 버튼(톱니바퀴, Dashboard settings)을 선택 Make editable 선택
Jetty 통계 Tomcat 통계
이 대시보드는 톰캣이 아니라 Jetty라는 웹 서버를 기준으로 통계를 수집한다. 이 부분을 수정하자. Jetty Statistics 부분으로 이동한 다음 설정 버튼을 통해 Title을 Tomcat Statistics로 변경한다.
Thread Config Max 패널 설정 변경
jetty_threads_config_max tomcat_threads_config_max_threads 로 변경
Thread 패널 설정 변경
jetty_threads_current tomcat_threads_current_threads
jetty_threads_busy tomcat_threads_busy_threads
jetty_threads_idle 제거
jetty_threads_jobs 제거
마이크로미터 대시보드 불러오기
다음 대시보드도 유용한 많은 정보를 제공한다. 이 대시보드도 추가해서 사용하자. https://grafana.com/grafana/dashboards/4701-jvm-micrometer/
정리
이미 잘 만들어진 대시보드를 활용하면 편리하게 모니터링 환경을 구성할 수 있다. 그리고 가져온 대시보드들을 분석해
보면 필요한 대시보드를 만드는데 좋은 참고가 될 것이다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
프로메테우스 - 게이지와 카운터
게이지(Guage)
카운터(Counter)
쉽게 이야기해서 게이지는 오르락 내리락 하는 값이고, 카운터는 특정 이벤트가 발생할 때 마다 그 수를 계속 누적하는 값이다.
게이지(Guage)
카운터(Counter)
계속 증가하는 그래프
http_server_requests_seconds_count{ur="/log"}HTTP 요청 메트릭을 그래프로 표현해보자. 카운터는 계속 누적해서 증가하는 값이다. 따라서 계속 증가하는 그래프만보게 될 것이다. 이렇게 증가만 하는 그래프에서는 특정 시간에 얼마나 고객의 요청이 들어왔는지 한눈에 확인하기 매우 어렵다. 이런 문제를 해결하기 위해 increase() , rate() 같은 함수를 지원한다.
invrease()
increase(http_server_requests_seconds_count{uri="/log"}[1m])시간 단위 요청 그래프

rate()
irate()
정리
에서 특정 시간에 얼마나 고객의 요청이 들어왔는지 확인할 수 있다.
그라파나 설치
그라파나 대시보드 만들기
먼저 다음 3가지를 꼭 수행해야 함
대시보드 저장
대시보드 확인
패널 만들기
대시보드에 패널 만들기
CPU 메트릭 만들기
다음 메트릭을 패널에 추가해보자.
PromQL 에 system_cpu_usage 를 입력하고 Run queries 버튼을 선택하자. 패널에 시스템 CPU 사용량을 그래프로 확인할 수 있다.
그래프의 데이터 이름 변경
패널 이름 설정
오른쪽에 보면 Panel options 라는 부분을 확인할 수 있다. 다음과 같이 수정하자
Title : CPU 사용량
패널 저장하기
화면 오른쪽 상단의 Save 또는 Apply 버튼을 선택한다.
디스크 사용량 추가하기
패널을 추가하고 다음 항목을 입력하자
패널 옵션
PromQL
+Query 로 다음을 추가하자
그래프 데이터 사이즈 변경
최소값 변경
정리
지금까지 CPU 사용량, 디스크 사용량 메트릭을 대시보드에 추가했다. 이제 앞서 학습한 다음과 같은 메트릭을 하나하나 추가하면 된다.
그런데 이렇게 하나하나 직접 대시보드를 입력하는 것도 참으로 힘든 일이다. 그라파나는 이미 만들어둔 대시보드를 가져다가 사용할 수 있는 기능을 제공한다.
그라파나 - 공유 대시보드 활용
다음 사이트에 접속하자
https://grafana.com/grafana/dashboards이미 누군가 만들어둔 수 많은 대시보드가 공개되어 있다. 우리는 스프링 부트와 마이크로미터를 사용해서 만든 대시보드를 가져다가 사용해보자
검색창에 spring이라고 검색해보면 다양한 대시보드를 확인할 수 있다.
그 중에 인기 있고, 동작하는 다음 대시보드를 불러와서 사용해보자.
스프링 부트 시스템 모니터 대시보드 불러오기
https://grafana.com/grafana/dashboards/11378-justai-system-monitor/사이트에 접속한 다음에 Copy Id to clipboard 를 선택하자. 또는 ID: 11378 이라고 되어 있는 부분의 숫자를
저장하자.
대시보드 불러오기
그라파나에 접속하자
대시보드를 확인해보면 거의 대부분의 메트릭을 대시보드에 표현한 것을 확인할 수 있다. 각각의 항목들을 보고 대시보드를 어떻게 구성해야 하는지도 학습할 수 있다. 참고로 일부 데이터의 경우 스프링 부트나 기타 라이브러리의 버전이 변함에 따라서 동작하지 않는 기능들도 있다. 이런 부분들은 수정해서 사용하자.
불러온 대시보드 수정하기
대시보드를 수정하려면 먼저 수정모드로 변경해야 한다.
오른쪽 상단의 설정 버튼(톱니바퀴, Dashboard settings)을 선택 Make editable 선택
Jetty 통계 Tomcat 통계
이 대시보드는 톰캣이 아니라 Jetty라는 웹 서버를 기준으로 통계를 수집한다. 이 부분을 수정하자. Jetty Statistics 부분으로 이동한 다음 설정 버튼을 통해 Title을 Tomcat Statistics로 변경한다.
Thread Config Max 패널 설정 변경
jetty_threads_config_max tomcat_threads_config_max_threads 로 변경
Thread 패널 설정 변경
jetty_threads_current tomcat_threads_current_threads
jetty_threads_busy tomcat_threads_busy_threads
jetty_threads_idle 제거
jetty_threads_jobs 제거
마이크로미터 대시보드 불러오기
다음 대시보드도 유용한 많은 정보를 제공한다. 이 대시보드도 추가해서 사용하자.
https://grafana.com/grafana/dashboards/4701-jvm-micrometer/정리
이미 잘 만들어진 대시보드를 활용하면 편리하게 모니터링 환경을 구성할 수 있다. 그리고 가져온 대시보드들을 분석해
보면 필요한 대시보드를 만드는데 좋은 참고가 될 것이다.
Beta Was this translation helpful? Give feedback.
All reactions