Prometheus 문서/쿼리/HTTP API

1 개요[ | ]

HTTP API

현재 안정적 HTTP API는 Prometheus 서버의 /api/v1아래에서 접근할 수 있습니다. 비단절적 추가사항이 있다면 해당 엔드포인트에 추가됩니다.

2 포맷 개요[ | ]

API 응답 형식은 JSON입니다. 모든 성공적인 API 요청은 2xx 상태 코드를 반환합니다.

API 핸들러에 도달하는 잘못된 요청은 JSON 오류 개체와 다음 HTTP 응답 코드 중 하나를 반환합니다.

  • 400 Bad Request 매개변수가 누락되었거나 올바르지 않은 경우.
  • 422 Unprocessable Entity 표현식을 실행할 수 없는 경우( RFC4918 ).
  • 503 Service Unavailable 쿼리가 시간 초과되거나 중단될 때.

API 엔드포인트에 도달하기 전에 발생한 오류의 경우 2xx 외 다른 코드가 반환될 수 있습니다.

요청 실행을 방해하지 않는 오류가 있는 경우 경고 배열이 반환될 수 있습니다. 거짓 양성일 수도 있고 아닐 수도 있는 잠재적인 쿼리 문제에 대해 정보 수준 주석의 추가 배열이 반환될 수 있습니다. 성공적으로 수집된 모든 데이터는 데이터 필드에 반환됩니다.

JSON 응답 봉투 포맷은 다음과 같습니다.

{
  "status": "success" | "error",
  "data": <data>,

  // Only set if status is "error". The data field may still hold
  // additional data.
  "errorType": "<string>",
  "error": "<string>",

  // Only set if there were warnings while executing the request.
  // There will still be data in the data field.
  "warnings": ["<string>"],
  // Only set if there were info-level annnotations while executing the request.
  "infos": ["<string>"]
}

3 표현식 쿼리[ | ]

3.1 인스턴트 쿼리[ | ]

3.2 범위 쿼리[ | ]

4 쿼리 표현식 포맷팅[ | ]

5 메타데이터 쿼리하기[ | ]

5.1 레이블 매처로 시리즈 찾기[ | ]

5.2 레이블 이름 얻기[ | ]

5.3 레이블 값 쿼리하기[ | ]

6 이그젬플러 쿼리[ | ]

7 표현식 쿼리 결과 포맷[ | ]

7.1 범위 벡터[ | ]

7.2 인스턴트 벡터[ | ]

7.3 스칼라[ | ]

7.4 문자열[ | ]

7.5 네이티브 히스토그램[ | ]

8 타겟[ | ]

9 규칙[ | ]

10 경보[ | ]

11 타겟 메타데이터 쿼리하기[ | ]

12 메트릭 메타데이터 쿼리하기[ | ]

13 경보매니저[ | ]

14 상태[ | ]

14.1 설정[ | ]

14.2 플래그[ | ]

14.3 런타임 정보[ | ]

14.4 빌드 정보[ | ]

14.5 TSDB 통계[ | ]

다음 엔드포인트는 Prometheus TSDB에 대한 다양한 카디널리티 통계를 반환합니다.

GET /api/v1/status/tsdb

URL 쿼리 파라미터: - limit=<number>: 반환된 항목 수를 각 통계 세트에 대해 지정된 수로 제한합니다. 기본적으로 10개의 항목이 반환됩니다.

data 쿼리 결과 섹션은 다음으로 구성됩니다.

  • headStats: TSDB의 헤드 블록에 대한 다음 데이터를 제공합니다.
  • numSeries: 시리즈 수입니다.
  • chunkCount: 청크의 개수입니다.
  • minTime: 현재 최소 타임스탬프(밀리초)입니다.
  • maxTime: 현재 최대 타임스탬프(밀리초)입니다.
  • seriesCountByMetricName: 지표 이름 및 해당 계열 수 목록을 제공합니다.
  • labelValueCountByLabelName: 레이블 이름과 해당 값 개수 목록을 제공합니다.
  • memoryInBytesByLabelName: 바이트 단위로 사용되는 레이블 이름 및 메모리 목록을 제공합니다. 메모리 사용량은 지정된 레이블 이름에 대한 모든 값의 길이를 더하여 계산됩니다.
  • seriesCountByLabelPair: 레이블 값 쌍 및 해당 계열 수 목록을 제공합니다.
$ curl http://localhost:9090/api/v1/status/tsdb
{
  "status": "success",
  "data": {
    "headStats": {
      "numSeries": 508,
      "chunkCount": 937,
      "minTime": 1591516800000,
      "maxTime": 1598896800143,
    },
    "seriesCountByMetricName": [
      {
        "name": "net_conntrack_dialer_conn_failed_total",
        "value": 20
      },
      {
        "name": "prometheus_http_request_duration_seconds_bucket",
        "value": 20
      }
    ],
    "labelValueCountByLabelName": [
      {
        "name": "__name__",
        "value": 211
      },
      {
        "name": "event",
        "value": 3
      }
    ],
    "memoryInBytesByLabelName": [
      {
        "name": "__name__",
        "value": 8266
      },
      {
        "name": "instance",
        "value": 28
      }
    ],
    "seriesCountByLabelValuePair": [
      {
        "name": "job=prometheus",
        "value": 425
      },
      {
        "name": "instance=localhost:9090",
        "value": 425
      }
    ]
  }
}

14.6 WAL 리플레이 통계[ | ]

15 TSDB 어드민 API[ | ]

이는 고급 사용자를 위한 데이터베이스 기능을 제공하는 API입니다. 이 API는 --web.enable-admin-api가 세팅되지 않으면 활성화되지 않습니다.

15.1 스냅샷[ | ]

스냅샷은 모든 현재 데이터의 스냅샷을 TSDB의 데이터 디렉토리 아래의 snapshots/<datetime>-<rand>에 생성하고 해당 디렉토리를 응답으로 반환합니다. 선택적으로 헤드 블록에만 존재하고 아직 디스크에 압축되지 않은 데이터 스냅샷은 건너뜁니다.

POST /api/v1/admin/tsdb/snapshot
PUT /api/v1/admin/tsdb/snapshot

URL 쿼리 파라미터:

  • skip_head=<bool>: 헤드 블록에 있는 데이터를 건너뜁니다. 선택적.
$ curl -XPOST http://localhost:9090/api/v1/admin/tsdb/snapshot
{
  "status": "success",
  "data": {
    "name": "20171210T211224Z-2be650b6d019eb54"
  }
}

이제 스냅샷은 <data-dir>/snapshots/20171210T211224Z-2be650b6d019eb54에 있습니다.

15.2 시리즈 삭제[ | ]

15.3 툼스톤 청소[ | ]

16 원격 쓰기 수신기[ | ]

17 OTLP 수신기[ | ]

18 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}