[프로메테우스 동작 원리]
1. 프로메테우스 서버에 접속
2. up을 쳤을 때 나오는 데이터들은 시계열 데이터베이스 정보
3. 쿠버네티스 메트릭 값들은 서비스 디스커버리라는 방법으로 정보가 수집됩니다. 그리고 storage에 저장된다.
Use local time | 시스템이나 모니터링 툴이 데이터를 로컬 시간대에 맞춰 표시하도록 설정합니다. 기본적으로 UTC가 사용될 수 있으나, 로컬 시간을 사용하면 사용자에게 친숙한 시간대 정보로 보여집니다. |
Enable query history | 프로메테우스 웹 UI나 시각화 도구에서 사용한 쿼리의 히스토리를 저장하여, 나중에 쉽게 접근하고 재사용할 수 있게 합니다. |
Enable autocomplete | 쿼리 작성 시 자동 완성 기능을 활성화하여, 사용자가 빠르고 정확하게 쿼리를 작성할 수 있게 도와줍니다. |
Enable highlighting | 쿼리 문법의 주요 부분을 강조하여 가독성을 높이는 기능입니다. 특히 복잡한 쿼리 작성 시 유용합니다. |
Enable linter | 쿼리 작성 시 문법 오류나 비효율적인 쿼리 구조를 감지하여 알려주는 기능입니다. |
Runtime Infomation
Storage retention: tsdb(시계열 데이터베이스)안의 데이터들은 기본적으로 15일만 보존한다. 만약 오랜기간 데이터를 보존하고 싶으면 이 부분을 늘려줄 필요가 있다.
TSDB STATUS
사용자가 명령으로 내릴 수 있는 FROMQL에 대한 프로메테우스 쿼리에 대한 정보를 표시하는 창입니다.
TSDB에서 쿼리할 수 있는 레이블에 대한 통계
메모리 사용량이 높은 쿼리에 대한 통계
특정 쿼리가 메모리를 많이 잡아먹으면 그 쿼리를 수집하지 않게 조정할 수 있다.
Command-Line flags
딱히 많이 쓰이지 않는 창이다.
그나마 확인할 수 있는 부분은 "--log.level"이다.
예를 들면 디버그 할 목적으로 로그 레벨을 디버그로 한다든가 이런 부분을 조정할 수 있다.
세부적인 옵션들을 지정하거나 확인 할 수 있다.
Configuration
서버가 configmap을 읽어들였다는 것을 확인하기 위한 용도로 사용
job_name | 스크랩할 대상 |
scrape_interval | 쿠버네티스 메트릭 값 수집하는 주 |
ConfigMap 정의 및 예시
Targets
prometheus.yml에서 지정한 Job이 잘 수집하고 있는지 확인 할 수 있다.
Service Discovery
참고자료
https://velog.io/@hyunshoon/Monitoring-Prometheus-%EC%B4%9D-%EC%A0%95%EB%A6%AC
서비스 디스커버리 할 수 있는 그 대상들에 대해서 여기서 리스트업을 하게 됩니다.
밑에 그림에 대해서 잠시 설명하겠습니다.
kubernetes-apiservers(1 / 16 active targets)란 16개의 api-servers(사용자가 한도를 설정 할 수 있음) 중 1개의 apiservers만 도달 했다는 뜻이다.
프로메테우스는 수집 대상을 자동으로 인식하고 필요한 정보를 수집한다.
정보를 수집하려면 일반적으로 에이전트를 설정해야 하지만, 쿠버네티스는 사용자가 에이전트에 추가로 입력할 필요 없이 자동으로 메트릭을 수집할 수 있다.
이는 프로메테우스 서버가 수집 대상을 가져오는 방법인 서비스 디스커버리 덕분이다.
Service Discovery Process
- 프로메테우스 서버는 컨피그맵에 기록된 내용을 바탕으로 대상을 읽어온다.
- 읽어온 대상에 대한 메트릭을 가져오기 위해 API 서버에 정보 요청
- 요청을 통해 알아온 경로로 메트릭 데이터를 수집
이와 같은 순서로 프로메테우스 서버와 API 서버가 주기적으로 데이터를 주고받아 수집 대상을 업데이트하고, 수집 대상에서 공개되는 메트릭을 자동으로 수집한다.
쿠버네티스가 나온 후 dynamic한 리소스 관리를 프로메테우스가 할 수 있어서 폭발적으로 성장 가능했다.
위의 글은 인프런 "실습으로 배우는 프로메테우스"를 참고하였습니다.