Prometheus 와 Grafana 사용하기

작성자 이경미 수정일 2023-03-02 13:26

#prometheus, #grafana

들어가며

  • Prometheus 에서 수집한 데이터를 Grafana 에서 시각화하기 위한 쿼리를 생성합니다. 
  • Grafana 에 DB 가 등록되어 있어야합니다. -> 진행방법
  • Prometheus 가 수집한 데이터를 확인할 수 있어야합니다. 
    • metric 수집 확인 방법
      <접속IP>:9100/metrics


내용

Grafana 를 생성하면 , 시각화를 표현하기 위해 데이터를 활용한 쿼리문을 생성해야합니다. 

이 때, 사용되는 쿼리는 Prometheus 에서 사용되는 쿼리이며 Prometheus 에서 작성 및 테스트가 가능합니다. 


1. Prometheus 포탈 접속 

  • <도메인>:30990
  • <IP>:30990

Enabled autocomplete 사용을 체크하면 원하는 주제의 다양한 함수들을 확인할 수 있습니다.

2. 쿼리 작성 

쿼리에 특정 instance 에 대한 쿼리를 작성하고 싶다면 다음과 같이 진행합니다. 

  1. 데이터 확인

    함수를 먼저 검색한 뒤 어떤 데이터를 수집하였는지 확인합니다. 
  2. 조건 생성
    조건은 중괄호 {} 를 사용하여 작성할 수 있습니다.
    Prometheus 가 수집한 데이터라면 여러개의 조건을 콤마(,) 로 구분하여 검색이 가능합니다.
  3. 함수 활용하기
    Prometheus 에도 SUM, MIN, MAX 등 다양한 함수를 사용할 수 있습니다.
    검색된 결과값의 합계를 알고싶다면 다음과 같이 함수를 사용합니다.

3. Grafana 에 적용하기 

  1. Grafana 포탈 접속하기
    새로 작업을 시작하기 위해서 순서대로 Dashboard 를 생성합니다.

  2. Panel 생성하기
    1) Add new panel
    "Add new panel" 을 클릭하여 Panel 을 생성합니다.

    2) 상세 설명
    - Setting - Panel Title ( 필수값 ) : Panel 의 이름을 생성합니다.
    - Description : 해당 Panel 의 상세 설명을 작성합니다.
    - Visualizaion : Panel 을 시각화할 유형을 선택합니다.
    - Panel 확인 : 생성된 Panel 을 확인합니다.

    3) 쿼리 작성
    Prometheus 에서 검증한 쿼리문을 사용합니다.

    cpu 사용량을 보기 위해 다음 쿼리를 사용합니다.
    instance:node_cpu:ratio

    그래프 및 Prometheus 에서 확인된 데이터를 확인할 수 있습니다.

    4) output 값 설정
    그래프 하단에 표시되는 값 중 특정 값만 표시하고 싶다면 Legend 값을 이용합니다.
    Legend 값에 넣을 데이터 값은 {{}} 를 사용하여 값을 넣어야합니다.

    다음과 같이 문자열로 표현도 가능합니다.

  3. filter 기능 사용하기
    Cluster 가 여러대 존재하는 경우 filter 기능을 통해 원하는 값을 효율적으로 확인할 수 있습니다.
    해당 기능은 변수 설정을 통해 가능합니다.

    1) 변수 설정
    환경 설정 버튼을 클릭하여 Variables 탭으로 이동합니다.

    Create Variables
    : 다음과 같이 필터링을 진행할 쿼리의 조건을 작성합니다.
    이 때, 정상적으로 작동되는 경우 하단의 Preview of values 에 결과값이 표시됩니다.

    결과

  4. 변수 필터링 쿼리 작성하기
    필터링된 값을 쿼리에 적용하는 방법은 Prometheus 와 동일합니다.
    중괄호 {} 를 이용하며, 필터링 데이터 값을 다음과 같이 넣어줍니다.
    instance:node_cpu:ratio{instance=~"^$instance$"}

    설명. variables 에서 지정한 name 값을 $ 사이에 작성합니다.

    결과. 선택된 필터링 값을 쿼리문에서 받아 그래프로 표시됩니다.


아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300