Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ArrayList
- HTML
- Java
- 개발자 취업
- cs 공부)준비
- css
- 배열
- CS
- 항해99
- GIT
- 정렬 알고리즘(sort algorithm)
- 메서드
- Grafana
- 회고
- 자바
- 프로그래머스
- aop
- github
- 코딩테스트 준비
- 이진 탐색(binary search)
- 면접(java
- Til
- 코딩문제
- Spring
- 코딩공부
- 자료구조
- 99클럽
- wil
- 코딩
- Entity
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240419 Prometheus & Grafana 본문
Prometheus & Grafana
- 애플리케이션 모니터링이란 애플리케이션에서 발생하는 동작들에 대한 메트릭을 수집하여 성능을 분석하는 분야를 말한다.
- 모니터링을 통해 서비스 개발 과정에서는 동작을 확인할 수 있고, 서비스 오픈 직전에는 성능 테스트를 할 수 있으며 서비스 운영 과정에서는 문제를 해결할 수 있다.
Metric(메트릭)
- 메트릭이란 측정 가능한 양이나 특성을 나타내는 척도 또는 지표를 말한다. 데이터 분석이나 평가, 성능 측정 등 다양한 분야에서 사용된다.
- 메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있다.
Prometheus 프로메테우스
- 프로메테우스는 오픈 소스 모니터링 도구로 메트릭 데이터를 수집하여 데이터베이스에 저장하고, 이를 사용하여 애플리케이션의 상태를 모니터링하고 분석한다.
- 애플리케이션에서는 매트릭 데이터를 프로메테우스로 노출 시켜줘야 하는데, 스프링 부트에서 프로메테우스를 사용하기 위해서는 스프링 부트 액추에이터 (Spring Boot Actuator) 를 사용하여 메트릭 수집을 위한 앤드 포인트를 노출시킨다.
장/단점
장점
pull 구조
- pull 방식의 구조를 채택함으로써, 모든 메트릭의 정보를 중앙 서버로 보내지 않아도 된다. 각 대상 서버의 부담이 줄어들고 데이터 수집 프로세스에 대한 제어가 강화된다.
- 대부분의 모니터링 구조는 push 인데, 각 타겟 서버에서 부하가 걸릴 경우 push 방식은 fail point가 될 가능성이 있다.(pull 방법은 push 방법에서 발생할 수 있는 대상 서버 과부하 위험 줄여줌)
Kubernetes 통합
- Kubernetes 환경에서 설치가 간단하고, grafana와의 연동을 통한 운영이 쉽다.
- Prometheus는 기본 통합 및 동적 서비스 검색 지원으로 인해 Kubernetes와 같은 컨테이너화된 환경을 모니터링하는 데 적합하다.
다양한 metric exporter 제공
- Linux, Window등의 OS metric 뿐 아니라 각종 Third-party의 exporter를 제공한다. 애플리케이션, 데이터베이스, 시스템과 같은 다양한 소스에서 메트릭을 쉽게 수집할 수 있다.
단점
- 각 리전(Region)에 프로메테우스를 배치한 후, 이를 Master에 Aggregate(더하는)하는 방식이 프로메테우스가 공식적으로 권장하는 다중화 방식이다. 즉, Clustering(그룹 방식 / 군집화)과는 거리가 멀다. → 고가용성 Prometheus 배포를 설정하려면 수동 구성과 외부 도구가 필요한 경우가 많다.
- 싱글 호스트 아키텍처이기 때문에 저장용량이 부족하면 스토리지 확장을 위해 디스크 용량을 늘리는 것 밖에 방법이 없다
Grafana 그라파나
- 그라파나는 오픈 소스 시각화 및 대시보드 도구로 다양한 데이터 소스와 통합되어 다양한 유형의 데이터를 시각화하고 사용자가 쉽게 대시보드를 구성할 수 있는 기능을 제공한다.
- 가장 일반적으로 사용되는 데이터 소스가 프로메테우스이다. 그 외에도 InfluxDB, ElasticSearch, MySQL, PostgreSQL, AWS CloudWatch 등 다양한 데이터 소스와 통합할 수 있다.
- 이러한 데이터 소스로부터 그라파나는 데이터를 쿼리하고, 그래프, 차트, 테이블 등 다양한 시각화 요소를 사용하여 데이터를 시각적으로 표현한다.
Prometheus 프로메테우스 설치
프로메테우스 설치
https://prometheus.io/download/
환경에 맞는 파일을 클릭하여 설치한다.
다운 받은 파일의 압축을 풀고 해당 폴더에 들어가 prometheus.exe를 실행한다.
이 화면이 나오면 추가정보를 클릭하고 실행한다.
실행이 되면 cmd 창이 뜬다.
cmd 창이 뜬 상태에서 프로메테우스로 잘 접속이 되는지 확인한다.
http://localhost:9090 ( 프로메테우스의 기본포트는 9090)
정상적으로 작동하는 것을 확인할 수 있다.
참고 자료
- https://developer-nyong.tistory.com/49
'스터디 > spring' 카테고리의 다른 글
[TIL]240503 Custom Annotation과 AOP로 메서드 실행시간 측정하기 (0) | 2024.05.03 |
---|---|
[TIL]240426 SSE(Server-Sent-Events) (0) | 2024.04.26 |
[TIL]240405 extends, implements 차이 (0) | 2024.04.05 |
[TIL]240329 스프링 부트와 AWS로 혼자 구현하는 웹서비스: -5장 스프링 시큐리티 & 인증, 인가 (3) | 2024.03.29 |
[TIL]240322 스프링 부트와 AWS로 혼자 구현하는 웹서비스: -4장 머스테치 & CRUD (1) | 2024.03.22 |