ClickHouse 서버 메트릭 노출
ClickHouse Cloud를 사용하는 경우 Prometheus 통합을 통해 Prometheus에 메트릭을 노출할 수 있습니다.
<prometheus.handlers> 섹션을 사용할 수 있습니다.
이 섹션은 <http_handlers>와 유사하지만 Prometheus 프로토콜에서 작동합니다:
엔드포인트를 확인하십시오:
Prometheus HTTP API 및 PromQL
TimeSeries 테이블을 통해 Prometheus HTTP API를 구현합니다. 하나의 핸들러가 remote write, remote read, 즉시 PromQL 쿼리 및 범위 PromQL 쿼리를 처리합니다.
사전 요구 사항
allow_experimental_time_series_table 설정을 활성화하십시오:
TimeSeries 테이블을 생성합니다.
allow_experimental_time_series_table을 활성화하십시오.
Prometheus API 구성
<defaults/>는 /ping 및 SQL 요청 같은 엔드포인트에 대한 기본 제공 핸들러를 유지합니다. 위의 prefix는 하나의 핸들러를 통해 이러한 엔드포인트를 노출합니다.
이 예시에서는 핸들러에서
database와 table을 생략합니다. 각 요청에는 table 쿼리 매개변수가 반드시 포함되어야 합니다. database를 지정하거나, prometheus.metrics와 같은 정규화된 테이블 이름을 사용하거나, 데이터베이스를 생략해 default를 사용할 수도 있습니다. 따라서 하나의 핸들러로 여러 TimeSeries 테이블을 처리할 수 있습니다.
모든 요청에 하나의 고정 테이블을 사용하려면 핸들러에서 이를 구성하십시오.
remote write를 통한 메트릭 수집
prometheus.metrics 테이블로 전송합니다.
PromQL로 쿼리
promql 방언 및 테이블 함수에서 지원하는 함수와 집계 연산자 목록은 지원되는 PromQL 기능을 참조하십시오.
Grafana
/api/v1 앞에서 끝나도록 Prometheus 데이터 소스를 구성하십시오:
/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 진입점
promql 방언, prometheusQuery 및 prometheusQueryRange 테이블 함수에서 동일한 PromQL 컨버터를 사용합니다.
clickhouse-client에서 PromQL을 직접 실행합니다:
remote read를 통해 메트릭 읽기
/prometheus/api/v1/read에서 Prometheus remote-read 프로토콜을 지원합니다.
동일한 TimeSeries 테이블에서 읽도록 Prometheus 서버를 구성합니다: