Skip to main content

ClickHouse 서버 메트릭 노출

ClickHouse Cloud를 사용하는 경우 Prometheus 통합을 통해 Prometheus에 메트릭을 노출할 수 있습니다.
Prometheus 서버가 ClickHouse 자체 메트릭을 스크레이프해야 하는 경우 전용 포트를 구성하십시오:
동일한 포트에서 더 확장된 핸들러를 구성하려면 <prometheus.handlers> 섹션을 사용할 수 있습니다. 이 섹션은 <http_handlers>와 유사하지만 Prometheus 프로토콜에서 작동합니다:
설정: 엔드포인트를 확인하십시오:

Prometheus HTTP API 및 PromQL

ClickHouse는 TimeSeries 테이블을 통해 Prometheus HTTP API를 구현합니다. 하나의 핸들러가 remote write, remote read, 즉시 PromQL 쿼리 및 범위 PromQL 쿼리를 처리합니다.

사전 요구 사항

테이블을 생성하고 액세스하는 사용자에 대해 allow_experimental_time_series_table 설정을 활성화하십시오:
데이터베이스와 TimeSeries 테이블을 생성합니다.
HTTP API 요청의 경우 API 사용자 profile에서 allow_experimental_time_series_table을 활성화하십시오.

Prometheus API 구성

기본 ClickHouse HTTP 포트에 prefix 기반으로 라우팅되는 핸들러 하나를 구성합니다:
<defaults/>/ping 및 SQL 요청 같은 엔드포인트에 대한 기본 제공 핸들러를 유지합니다. 위의 prefix는 하나의 핸들러를 통해 이러한 엔드포인트를 노출합니다. 이 예시에서는 핸들러에서 databasetable을 생략합니다. 각 요청에는 table 쿼리 매개변수가 반드시 포함되어야 합니다. database를 지정하거나, prometheus.metrics와 같은 정규화된 테이블 이름을 사용하거나, 데이터베이스를 생략해 default를 사용할 수도 있습니다. 따라서 하나의 핸들러로 여러 TimeSeries 테이블을 처리할 수 있습니다. 모든 요청에 하나의 고정 테이블을 사용하려면 핸들러에서 이를 구성하십시오.
핸들러에 구성된 테이블은 요청 매개변수로 재정의할 수 없습니다. 라우팅 및 핸들러 설정:

remote write를 통한 메트릭 수집

ClickHouse는 Prometheus remote-write 프로토콜을 지원합니다. Prometheus가 핸들러에 쓰도록 구성하십시오:
Prometheus는 샘플을 prometheus.metrics 테이블로 전송합니다.

PromQL로 쿼리

특정 시점에서 PromQL 표현식을 평가하려면 instant-query 엔드포인트를 사용하십시오:
range-query 엔드포인트를 사용하여 지정한 시간 범위에서 표현식을 평가합니다:
HTTP API, promql 방언 및 테이블 함수에서 지원하는 함수와 집계 연산자 목록은 지원되는 PromQL 기능을 참조하십시오.

Grafana

기준 URL이 /api/v1 앞에서 끝나도록 Prometheus 데이터 소스를 구성하십시오:
Grafana는 이 기준 URL 뒤에 /api/v1/query 또는 /api/v1/query_range를 추가하고, 각 요청에 customQueryParameters를 추가합니다.
쿼리 엔드포인트인 /api/v1/query/api/v1/query_range만 구현되어 있습니다. Grafana Prometheus 데이터 소스에서 레이블 탐색, 템플릿 변수, 쿼리 빌더 자동 완성에 사용하는 메타데이터 엔드포인트(/api/v1/series, /api/v1/labels, /api/v1/label/<name>/values)는 구현되어 있지 않으므로 오류를 반환합니다. 쿼리 빌더 대신 코드 모드에서 PromQL 표현식을 작성하십시오.

SQL 진입점

ClickHouse는 HTTP API, promql 방언, prometheusQueryprometheusQueryRange 테이블 함수에서 동일한 PromQL 컨버터를 사용합니다. clickhouse-client에서 PromQL을 직접 실행합니다:
테이블 함수를 사용하여 SQL 쿼리에 PromQL을 삽입합니다:

remote read를 통해 메트릭 읽기

ClickHouse는 /prometheus/api/v1/read에서 Prometheus remote-read 프로토콜을 지원합니다. 동일한 TimeSeries 테이블에서 읽도록 Prometheus 서버를 구성합니다:
마지막 수정일 2026년 8월 18일