카테고리 없음

[실습으로 배우는 프로메테우스] 프로메테우스 Web UI 메뉴를 통해 프로메테우스 동작배우기 - 1

종종이94 2024. 5. 18. 22:49

 

 

[프로메테우스 동작 원리]

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 정의 및 예시

https://velog.io/@pinion7/Kubernetes-%EB%A6%AC%EC%86%8C%EC%8A%A4-ConfigMap%EC%97%90-%EB%8C%80%ED%95%B4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B3%A0-%EC%8B%A4%EC%8A%B5%ED%95%B4%EB%B3%B4%EA%B8%B0

 

 

Targets

prometheus.yml에서 지정한 Job이 잘 수집하고 있는지 확인 할 수 있다.

 

 

 

 

Service Discovery

참고자료

https://velog.io/@hyunshoon/Monitoring-Prometheus-%EC%B4%9D-%EC%A0%95%EB%A6%AC

 

[Monitoring] Prometheus 총 정리

🔥 Goal > 나만의 모니터링 문서를 만든다. 각 하위 개념의 자세한 정리를 따로 포스팅하여 링크를 첨부한다. 프로메테우스를 심도 깊게 정리한다. 프로메테우스로 무엇을, 어떻게 모니터링 할지

velog.io

 

 

서비스 디스커버리 할 수 있는 그 대상들에 대해서 여기서 리스트업을 하게 됩니다.

 

밑에 그림에 대해서 잠시 설명하겠습니다.

kubernetes-apiservers(1 / 16 active targets)란 16개의 api-servers(사용자가 한도를 설정 할 수 있음) 중 1개의 apiservers만 도달 했다는 뜻이다.

 

 

프로메테우스는 수집 대상을 자동으로 인식하고 필요한 정보를 수집한다.

정보를 수집하려면 일반적으로 에이전트를 설정해야 하지만, 쿠버네티스는 사용자가 에이전트에 추가로 입력할 필요 없이 자동으로 메트릭을 수집할 수 있다.

이는 프로메테우스 서버가 수집 대상을 가져오는 방법인 서비스 디스커버리 덕분이다.

 

Service Discovery Process

  1. 프로메테우스 서버는 컨피그맵에 기록된 내용을 바탕으로 대상을 읽어온다.
  2. 읽어온 대상에 대한 메트릭을 가져오기 위해 API 서버에 정보 요청
  3. 요청을 통해 알아온 경로로 메트릭 데이터를 수집

이와 같은 순서로 프로메테우스 서버와 API 서버가 주기적으로 데이터를 주고받아 수집 대상을 업데이트하고, 수집 대상에서 공개되는 메트릭을 자동으로 수집한다.

쿠버네티스가 나온 후 dynamic한 리소스 관리를 프로메테우스가 할 수 있어서 폭발적으로 성장 가능했다.

 

 

 

 

 

 

 

 

위의 글은 인프런 "실습으로 배우는 프로메테우스"를 참고하였습니다.

https://www.inflearn.com/course/%EC%8B%A4%EC%8A%B5%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%ED%94%84%EB%A1%9C%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4/dashboard