Read 엔드포인트 활용
Read 엔드포인트는 Prometheus 데이터를 실시간으로 조회하고 분석할 수 있도록 지원하며, Grafana와 같은 시각화 도구와의 통합, REST API를 활용한 데이터 처리 및 모니터링 그리고 스크립트나 애플리케이션에서 메트릭 데이터를 활용하는 작업에 활용됩니다.
워크스페이스에 대한 Read 엔드포인트는 워크스페이스 정보 조회 API에서 확인할 수 있습니다. (워크스페이스 정보 조회)
Rest API를 통한 데이터 쿼리 예제
Prometheus Read 엔드포인트는 HTTP API를 제공하며, PromQL을 사용해 데이터를 직접 쿼리할 수 있습니다.
예제 1. 특정 메트릭의 최신 데이터 조회
curl -X GET "http://advanced-managed-promethues.kr-central-2.kakaocloud.com/workspaces/XXXXXXX/api/v1/query?query=up" \ # 워크스페이스 write 엔드포인트 입력
-H "Credential-ID: xxxxxxx" \ # 사용자 Credential-ID 입력
-H "Credential-Secret: xxxxxxxxxx" # 사용자 Credential-Secret 입력
- 현재 활성화된 타겟(up 메트릭)의 상태를 조회합니다.
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"__name__": "up",
"instance": "localhost:9100",
"job": "node_exporter"
},
"value": [1735015596, "1"]
}
]
}
}
- value: Unix 타임스탬프(초 단위), 타겟 활성화 상태 ("1")를 의미합니다.
- 비활성화 상태일 경우 "0"으로 노출됩니다.
예제 2. 특정 시간 범위의 메트릭 데이터 조회
curl -v -X GET "http://advanced-managed-promethues.kr-central-2.kakaocloud.com/workspaces/XXXXXXX/api/v1/query_range?query=rate(http_requests_total%5B5m%5D)&start=2024-12-22T00:00:00Z&end=2024-12-22T01:00:00Z&step=15s" \ # 워크스페이스 write 엔드포인트 입력
-H "Credential-ID: xxxxxxx" \ # 사용자 Credential-ID 입력
-H "Credential-Secret: xxxxxxxxxx" # 사용자 Credential-Secret 입력
- 특정 시간 동안의 메트릭 증가율을 계산합니다.
- 단위 시간당 메트릭 변화량을 측정하여 분석합니다.
{
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {
"__name__": "http_requests_total",
"instance": "localhost:9100",
"job": "web_server"
},
"values": [
[1735012800, "0.5"],
[1735012860, "0.4"],
[1735012920, "0.6"]
]
}
]
}
}
- 시간과 값의 배열 각 요소는 [timestamp, value]로 구성됩니다.
- 예) [1735012800, "0.5"] = 2024-12-22 00:00:00 UTC에 요청 비율이 0.5를 의미합니다.
Grafana 대시보드 구성 예제
Grafana는 Prometheus 데이터를 시각화하고 모니터링 대시보드를 구성할 수 있는 강력한 오픈소스 도구입니다.
Grafana를 Managed Prometheus의 Read 엔드포인트와 연동하면 다음과 같은 기능을 제공합니다.
- 실시간 대시보드 생성
- PromQL 기반의 복잡한 쿼리 실행
- 알림 및 경고 설정
Grafana 외에도 Prometheus 익스포터를 지원하는 다양한 시각화 도구를 활용할 수 있습니다. 사용자는 각 도구의 특성과 요구 사항에 따라 적합한 대시보드를 선택할 수 있습니다.
Grafana 설치
Grafana 와의 연동을 위해서는 Grafana 설치가 필요합니다. 직접 빌드하거나 Docker 이미지(Docker Image)를 활용하여 설치할 수 있습니다. 자세한 설치 방법은 Grafana 공식 가이드를 참고하시기 바랍니다.
아래의 초기 로그인 정보를 사용하여 Grafana에 접속합니다.
항목 | 설정/입력값 |
---|---|
Email or username | admin |
password | admin |
Grafana에 최초 로그인 시, 계정 보안을 위해 초기 비밀번호를 변경해야 합니다.
Prometheus 연동
Grafana 대시보드와의 연동을 위해서는 Connection 설정이 필요합니다.
-
Grafana 좌측 메뉴에서 Connections > Data sources 페이지에 접근합니다.
-
[Add data source] 버튼을 클릭하여 신규 데이터 소스를 생성합니다.
Add data source 클릭
-
Prometheus 데이터 소스 유형을 선택합니다.
-
Connection 영역에 Prometheus Read 엔드포인트를 입력합니다.
(단, 뒤에 /api/v1/query 영역은 제거 후 입력)Connection / HTTP Headers 설정
-
HTTP Headers 영역에 Credential-ID, Credential-Secret 입력 후 사용자 별 Value 추가합니다.
-
Save & Test 버튼을 클릭합니다.
-
Dashboards > New Dashboards 단계에서 연결한 Prometheus를 선택 후 원하는 PromQL을 입력합니다.