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

더 알아보기 (Learn more)