본문으로 건너뛰기

Metric Export 사용

Monitoring 서비스에서 제공되는 Metric Export 엔드포인트를 이용하여 서드파티에서 카카오클라우드 Monitoring 데이터를 확인하실 수 있습니다. 시계열 데이터베이스(TSDB, Time Series Database) 데이터를 시각화하고 분석할 수 있는 오픈 소스 소프트웨어인 Grafana를 이용하여 데이터를 확인하는 방법은 다음과 같습니다.

안내
  • 해당 서비스는 kr-central-2 리전에만 우선 제공됩니다.
  • kr-central-2의 Public IP가 적용된 VM 또는 인터넷 게이트웨이가 연동된 kr-central-2의 VPC에 생성된 VM의 요청에 대해서만 서비스를 제공합니다.
  • Alarm Rules 등의 일부 기능 사용 시, 경고 문구가 발생할 수 있습니다.

제공 API

Monitoring Metric Export에서는 다음의 API를 제공합니다. 각 API는 Prometheus HTTP API와 호환됩니다.

항목설명
/metric/grafana/:id/prometheus/api/v1/series특정 Label Set와 일치하는 시계열 목록을 반환합니다.
/metric/grafana/:id/prometheus/api/v1/query_range일정 기간의 쿼리 결과를 반환합니다.
/metric/grafana/:id/prometheus/api/v1/query단일 시점에 대한 쿼리 결과를 반환합니다.
/metric/grafana/:id/prometheus/api/v1/metadata메트릭에 대한 메타데이터를 반환합니다.
/metric/grafana/:id/prometheus/api/v1/labels레이블 이름 목록을 반환합니다
/metric/grafana/:id/prometheus/api/v1/label/:labelName/values제공된 레이블 이름에 대한 레이블 값 목록을 반환합니다.

Export 지원 메트릭 항목

Metric Export 기능을 이용하여 카카오클라우드 Monitoring에서 제공하는 사용자 프로젝트 내의 모든 메트릭을 확인할 수 있습니다.
자세한 설명은 모니터링 메트릭을 참고하시기 바랍니다.

Grafana 사용 가이드

사전 작업

1. Grafana 설치하기

Grafana를 사용하기 위해서는 사용자 환경에 따라 별도의 구축이 필요합니다. 직접 빌드를 해서 사용하거나 Docker Image를 활용하는 방법을 통하여 Grafana를 설치할 수 있습니다. 자세한 설치 방법은 Grafana 공식 가이드를 참고하시기 바랍니다.

  • 이 가이드는 Grafana v8.5.27를 기반으로 작성되었습니다.
2. Metric Export 엔드포인트 확인하기

Metric Export 엔드포인트는 다음과 같이 구성되어 있습니다. {project_id}는 사용자의 프로젝트 아이디입니다.

Monitoring Grafana Export 엔드포인트 형식
kr-central-2 : https://monitoring.kr-central-2.kakaoi.io/metric/grafana/{project_id}/prometheus
3. 액세스 키 발급하기

Metric Export API 사용을 위해서는 액세스 키 발급이 필요합니다. 액세스 키 발급 문서를 참고하여 액세스 키 ID와 보안 액세스 키를 발급합니다.

Prometheus 데이터소스 생성하기

카카오클라우드 Monitoring은 Prometheus 데이터 포맷으로 사용할 수 있습니다. 카카오클라우드 Monitoring의 데이터소스를 생성하는 방법은 다음과 같습니다.

  1. Grafana 좌측 메뉴를 선택하여 Connections > Data sources 페이지에 접근합니다.

  2. [Add data source] 버튼을 클릭하여 신규 Data source를 생성합니다.

    이미지 Grafana - 데이터 소스 생성하기

  3. Prometheus data source type을 선택합니다.

  4. HTTP 내의 Prometheus server URL에 Metric Export 엔드포인트를 입력합니다.

    이미지 Grafana - 앤드포인트 입력하기

  5. Custom HTTP Headers 내의 [Add header] 버튼을 클릭하여 다음 정보를 입력합니다.

    이미지 Grafana - 정보 입력하기

    항목설명
    Credential-ID액세스 키 ID
    Credential-Secret보안 액세스 키
    service-type해당 데이터 소스로 조회할 서비스 타입을 입력
    - 지원 서비스 (입력 값)
    ㄴ Virtual Machine, GPU, Bare metal Server (입력값: server)
    ㄴ Mysql (입력값: mysql)
    ㄴ Redis (입력값: redis)
    ㄴ Load Balancing (입력값: lb)
  6. 하단 [Save & test] 버튼을 클릭하여 설정을 저장합니다.

Monitoring Metric 확인하기

설정된 데이터소스를 이용하여 Monitoring API에서 제공하는 메트릭을 확인할 수 있습니다.

  1. Grafana 좌측 메뉴를 선택하여 Explore 페이지에 접근합니다.

  2. 위에서 생성한 Prometheus 데이터소스를 선택합니다.

  3. 메트릭 목록에서 메트릭을 지정합니다.

  4. 우측 상단 Run query를 이용하여 다음과 같이 메트릭의 시계열 데이터를 확인합니다.

    이미지 Grafana - 시계열 데이터

사용자 대시보드 구성하기

카카오클라우드의 모니터링 데이터를 이용해 사용자 정의 Grafana 대시보드를 구성할 수 있습니다.

  1. Grafana 좌측 메뉴를 선택하여 Dashboards 페이지에 접근합니다.

  2. 우측의 [New] 버튼을 선택하고 New dashboard를 클릭합니다.

  3. Add visualization을 선택하고 위에서 생성한 prometheus 데이터소스를 지정합니다.

  4. 대시보드 구성을 완료하고 우측상단의 [저장] 버튼을 클릭하여 대시보드를 저장합니다. 다음과 같은 예시의 대시보드를 구성하실 수 있습니다.

    이미지 Grafana - 사용자 정의 대시보드

서비스 과금 단위: QSP

Metric Export는 Query Samples Processed, QSP 단위를 사용하여 서비스 과금을 하고 있습니다. QSP는 쿼리 데이터 요청시 조회되는 메트릭의 데이터 포인트의 개수(sample 수)를 의미합니다.

QSP 예시

QSP는 Query Type(instant, range)과 step의 최소 설정 값 등 사용자의 설정에 따라 달라집니다.

이미지 Grafana - 사용자 정의 그래프 화면

QSP 계산 예시
  1. 그라파나에 아래와 같이 쿼리를 설정하고 1시간 동안 비어있는 데이터 포인트가 없다고 가정했을 때, 데이터 포인트는 다음과 같이 계산할 수 있습니다.

    Query 예제
    {
    query: sum by(instance_id) (mysql_uptime) # 쿼리
    range: 1h # 조회하는 시간 간격
    step: 15s # 데이터 포인트 사이의 간격
    }

    3600초(range) / 15s (step) = 240

  2. 여기에 매트릭에 표현된 시리즈의 개수를 곱해 240 * 2 = 480 QSP를 계산할 수 있습니다.

  3. 추가적으로 시작 포인트를 추가하기 위해 시리즈 별로 포인트 1개씩, 2 포인트를 더해 총 482 QSP가 발생하게 됩니다.