3.2.22. 라우터 지표 노출
HAProxy 라우터 지표 는 기본적으로 외부 지표 수집 및 집계 시스템(예: Prometheus, statsd)에서 사용할 수 있도록 Prometheus 형식에 노출되거나 게시됩니다. 지표는 브라우저 또는 CSV 다운로드에서 볼 수 있도록 자체 HTML 형식으로 HAProxy 라우터 에서 직접 사용할 수도 있습니다. 이러한 지표에는 HAProxy 기본 지표 및 일부 컨트롤러 지표가 포함됩니다.
다음 명령을 사용하여 라우터를 생성할 때 OpenShift Container Platform에서는 기본적으로 1936년까지 통계 포트의 Prometheus 형식으로 지표를 사용할 수 있습니다.
$ oc adm router --service-account=router
Prometheus 형식의 원시 통계를 추출하려면 다음 명령을 실행합니다.
curl <user>:<password>@<router_IP>:<STATS_PORT>
예를 들면 다음과 같습니다.
$ curl admin:sLzdR6SgDJ@10.254.254.35:1936/metrics
라우터 서비스 주석에서 메트릭에 액세스하는 데 필요한 정보를 가져올 수 있습니다.
$ oc edit service <router-name> apiVersion: v1 kind: Service metadata: annotations: prometheus.io/port: "1936" prometheus.io/scrape: "true" prometheus.openshift.io/password: IImoDqON02 prometheus.openshift.io/username: admin
prometheus.io/port
는 기본적으로 1936년 통계 포트입니다. 액세스를 허용하도록 방화벽을 구성해야 할 수도 있습니다. 이전 사용자 이름 및 암호를 사용하여 지표에 액세스합니다. 경로는 /metrics 입니다.$ curl <user>:<password>@<router_IP>:<STATS_PORT> for example: $ curl admin:sLzdR6SgDJ@10.254.254.35:1936/metrics ... # HELP haproxy_backend_connections_total Total number of connections. # TYPE haproxy_backend_connections_total gauge haproxy_backend_connections_total{backend="http",namespace="default",route="hello-route"} 0 haproxy_backend_connections_total{backend="http",namespace="default",route="hello-route-alt"} 0 haproxy_backend_connections_total{backend="http",namespace="default",route="hello-route01"} 0 ... # HELP haproxy_exporter_server_threshold Number of servers tracked and the current threshold value. # TYPE haproxy_exporter_server_threshold gauge haproxy_exporter_server_threshold{type="current"} 11 haproxy_exporter_server_threshold{type="limit"} 500 ... # HELP haproxy_frontend_bytes_in_total Current total of incoming bytes. # TYPE haproxy_frontend_bytes_in_total gauge haproxy_frontend_bytes_in_total{frontend="fe_no_sni"} 0 haproxy_frontend_bytes_in_total{frontend="fe_sni"} 0 haproxy_frontend_bytes_in_total{frontend="public"} 119070 ... # HELP haproxy_server_bytes_in_total Current total of incoming bytes. # TYPE haproxy_server_bytes_in_total gauge haproxy_server_bytes_in_total{namespace="",pod="",route="",server="fe_no_sni",service=""} 0 haproxy_server_bytes_in_total{namespace="",pod="",route="",server="fe_sni",service=""} 0 haproxy_server_bytes_in_total{namespace="default",pod="docker-registry-5-nk5fz",route="docker-registry",server="10.130.0.89:5000",service="docker-registry"} 0 haproxy_server_bytes_in_total{namespace="default",pod="hello-rc-vkjqx",route="hello-route",server="10.130.0.90:8080",service="hello-svc-1"} 0 ...
브라우저에서 메트릭을 가져오려면 다음을 수행합니다.
라우터 배포 구성 파일에서 다음 환경 변수를 삭제합니다.
$ oc edit dc router - name: ROUTER_LISTEN_ADDR value: 0.0.0.0:1936 - name: ROUTER_METRICS_TYPE value: haproxy
라우터 준비 프로브를 패치하여 haproxy 라우터에서 현재 제공하는 활성 프로브와 동일한 경로를 사용합니다.
$ oc patch dc router -p '"spec": {"template": {"spec": {"containers": [{"name": "router","readinessProbe": {"httpGet": {"path": "/healthz"}}}]}}}'
브라우저에서 다음 URL을 사용하여 stats 창을 시작합니다. 여기서
STATS_PORT
값은 기본적으로1936
입니다.http://admin:<Password>@<router_IP>:<STATS_PORT>
URL에
;csv
를 추가하여 CSV 형식으로 통계를 가져올 수 있습니다.예를 들면 다음과 같습니다.
http://admin:<Password>@<router_IP>:1936;csv
라우터 IP, 관리자 이름 및 암호를 가져오려면 다음을 수행합니다.
oc describe pod <router_pod>
메트릭 컬렉션을 비활성화하려면 다음을 수행합니다.
$ oc adm router --service-account=router --stats-port=0