Prometheus 메트릭 엔드포인트
Prometheus 메트릭 엔드포인트 (Prometheus metrics endpoint)
ClickHouse는 Prometheus 서버가 스크랩할 수 있도록 자체 메트릭을 전용 포트에서 Prometheus 텍스트 포맷으로 노출해요.
출처: 문서
본문
ClickHouse는 Prometheus 텍스트 포맷의 전용 포트에서 자체 메트릭을 노출해, Prometheus 서버가 그것들을 스크랩할 수 있게 해요.
Prometheus 메트릭을 ClickHouse에 저장하고 PromQL로 쿼리하려면 대신 Prometheus HTTP API 및 PromQL을 참고해요.
참고: ClickHouse Cloud를 사용한다면 Prometheus Integration을 사용해 Prometheus에 메트릭을 노출할 수 있어요.
메트릭 포트 구성 (Configure the metrics port)
Prometheus 서버가 ClickHouse 자체 메트릭을 스크랩해야 할 때 전용 포트를 구성해요:
<prometheus>
<port>9363</port>
<endpoint>/metrics</endpoint>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
<histograms>true</histograms>
<dimensional_metrics>true</dimensional_metrics>
</prometheus>
확장 핸들러 구성 (Configure extended handlers)
<prometheus.handlers> 섹션은 같은 포트에서 더 확장된 핸들러를 만드는 데 사용할 수 있어요. 이 섹션은 <http_handlers>와 비슷하지만 prometheus 프로토콜에서 동작해요:
<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/metrics</url>
<handler>
<type>expose_metrics</type>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
<histograms>true</histograms>
<dimensional_metrics>true</dimensional_metrics>
<labels>
<environment>production</environment>
<shard from_env="SHARD_NAME"></shard>
</labels>
</handler>
</my_rule_1>
</handlers>
</prometheus>
설정 (Settings)
이 설정들의 전체 동작은 서버 설정 레퍼런스의 Prometheus 섹션을 참고해요.
| 이름 | 기본값 | 설명 |
|---|---|---|
port |
없음 | ClickHouse 메트릭을 서빙하는 포트. |
endpoint |
/metrics |
메트릭을 스크랩하기 위한 HTTP 엔드포인트. /로 시작해요. <handlers> 섹션과 함께 사용하면 안 돼요. |
url / headers / method |
없음 | 요청에 대한 일치하는 핸들러를 찾기 위한 필터. <http_handlers> 섹션의 같은 이름 필드와 유사해요. |
info |
true | 서버 신원 라벨(name, version, version_describe, version_major, version_minor, version_patch)을 가진 ClickHouse_Info 게이지를 노출. |
metrics |
true | system.metrics의 메트릭을 노출. |
asynchronous_metrics |
true | system.asynchronous_metrics의 메트릭을 노출. |
events |
true | system.events의 메트릭을 노출. |
errors |
true | system.errors의 오류 카운트를 노출. |
histograms |
true | system.histogram_metrics의 메트릭을 노출. |
dimensional_metrics |
true | system.dimensional_metrics의 메트릭을 노출. |
labels |
없음 | 노출되는 모든 메트릭에 추가되는 상수 라벨. 각 하위 요소가 하나의 라벨을 정의해요. 요소 이름이 라벨 이름([a-zA-Z_][a-zA-Z0-9_]*와 일치해야 함)이고 요소 값이 라벨 값이에요. 라벨 값은 from_env 속성 같은 표준 설정 치환을 지원해요. 라벨 이름이 __로 시작하거나(Prometheus가 예약), 이 엔드포인트가 활성화된 섹션 중 하나에 이미 쓰는 라벨과 충돌하면 거부돼요. 예약된 집합은 따라서 엔드포인트의 활성 내보내기 표면을 따릅니다: histograms가 활성화되면 le; info가 활성화되면 ClickHouse_Info 라벨(name, version, version_describe, version_major, version_minor, version_patch); histograms 또는 dimensional_metrics가 활성화되면 노출된 히스토그램이나 차원 메트릭 패밀리가 사용하는 어떤 라벨(예: group, direction, operation_type). 엔드포인트가 실제로 무엇을 노출하느냐에 달려 있으므로, 한 엔드포인트에서 유효한 이름이 다른 엔드포인트에서는 거부될 수 있어요. |
엔드포인트 확인 (Check the endpoint)
curl http://127.0.0.1:9363/metrics