Read Resources API
Read Resources API
이 기능은 실험적 기능이라 프로덕션 환경에서는 사용을 권장하지 않아요. 기능 진행 상황에 대한 업데이트나 피드백이 있으면 OpenSearch 포럼에서 토론에 참여해 주세요.
외부 데이터 소스에서 메타데이터와 리소스를 가져와요. 이 API는 Prometheus와 Alertmanager의 라벨(label), 시리즈(series), 알림(alerts) 및 기타 메타데이터에 접근할 수 있게 해줘요.
이 API를 사용하기 전에 먼저 데이터 소스를 구성해야 해요. 데이터 소스 구성 방법은 Data sources 문서를 참고하세요.
출처: 문서
본문
엔드포인트 (Endpoints)
Read Resources API는 서로 다른 리소스 유형을 위한 여러 엔드포인트를 지원해요.
GET /_plugins/_directquery/_resources/{dataSource}/api/v1/{resourceType}
GET /_plugins/_directquery/_resources/{dataSource}/api/v1/{resourceType}/{resourceName}/values
GET /_plugins/_directquery/_resources/{dataSource}/alertmanager/api/v2/{resourceType}
GET /_plugins/_directquery/_resources/{dataSource}/alertmanager/api/v2/alerts/groups
경로 파라미터 (Path parameters)
다음 표는 사용 가능한 경로 파라미터를 나열해요.
| Parameter | Data type | Description |
|---|---|---|
dataSource |
String | 구성된 데이터 소스의 이름이에요. 필수예요. |
resourceType |
String | 가져올 리소스의 유형이에요. Supported resource types를 참고하세요. 필수예요. |
resourceName |
String | 특정 리소스의 이름이에요(예: 라벨 값을 가져올 때의 라벨 이름). 라벨 값 엔드포인트에 필수예요. |
지원되는 리소스 유형 (Supported resource types)
Prometheus 데이터 소스에 대해 다음 리소스 유형이 지원돼요.
| Resource type | Endpoint | Description |
|---|---|---|
labels |
/api/v1/labels |
모든 라벨 이름을 가져와요. |
label |
/api/v1/label/{labelName}/values |
특정 라벨의 값을 가져와요. |
metadata |
/api/v1/metadata |
메트릭 메타데이터를 가져와요. |
series |
/api/v1/series |
셀렉터와 일치하는 시계열을 가져와요. |
alerts |
/alertmanager/api/v2/alerts |
Alertmanager에서 활성 알림을 가져와요. |
silences |
/alertmanager/api/v2/silences |
Alertmanager에서 알림 침묵(silences)을 가져와요. |
receivers |
/alertmanager/api/v2/receivers |
Alertmanager 수신자(receivers)를 가져와요. |
Prometheus 질의 파라미터
다음 질의 파라미터는 Prometheus 및 Alertmanager 데이터 소스에 특화되어 있어요. 이 파라미터는 기본 데이터 소스 API로 전달돼요.
| Parameter | Data type | Description |
|---|---|---|
start |
String | 결과를 필터링하기 위한 시작 타임스탬프로, ISO 8601 형식이에요. 선택 사항이에요. |
end |
String | 결과를 필터링하기 위한 종료 타임스탬프로, ISO 8601 형식이에요. 선택 사항이에요. |
match[] |
String | 결과를 필터링하는 데 사용되는 시계열 셀렉터예요(series 엔드포인트 전용). 선택 사항이에요. |
active |
Boolean | 활성 상태에 따라 알림을 필터링해요(Alertmanager 전용). 선택 사항이에요. |
silenced |
Boolean | 침묵 상태에 따라 알림을 필터링해요(Alertmanager 전용). 선택 사항이에요. |
filter |
String | 침묵을 일치시키는 데 사용되는 필터 표현식이에요(Alertmanager 전용). 선택 사항이에요. |
예시 요청: 모든 라벨 가져오기
GET /_plugins/_directquery/_resources/my_prometheus/api/v1/labels
예시 응답
{
"status": "success",
"data": [
"__name__",
"instance",
"job",
"mode",
"cpu"
]
}
예시 요청: 특정 라벨의 값 가져오기
GET /_plugins/_directquery/_resources/my_prometheus/api/v1/label/job/values
예시 응답
{
"status": "success",
"data": [
"prometheus",
"node_exporter",
"alertmanager"
]
}
예시 요청: 활성 알림 가져오기
GET /_plugins/_directquery/_resources/my_prometheus/alertmanager/api/v2/alerts?active=true&silenced=false
예시 응답
[
{
"labels": {
"alertname": "HighMemoryUsage",
"instance": "server1:9100",
"severity": "warning"
},
"annotations": {
"summary": "High memory usage detected"
},
"startsAt": "2024-01-01T10:00:00.000Z",
"status": {
"state": "active"
}
}
]
예시 요청: 알림 침묵 가져오기
GET /_plugins/_directquery/_resources/my_prometheus/alertmanager/api/v2/silences