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

더 알아보기 (Learn more)