이번 실습은 Istio가 수집한 메트릭 데이터를 Prometheus에서 직접 확인해보는 과정을 다룬다. Istio 공식 문서 Operations > Integrations > Prometheus 항목을 바탕으로 실습을 진행한다.
Istio가 수집한 메트릭이 실제 Prometheus에 수집되는지 확인하고, 어떤 지표들을 직접 쿼리해볼 수 있는지 실습해본다.
Istio의 demo 프로파일을 설치하면 Prometheus, Grafana, Jaeger까지 기본적으로 함께 배포되기 때문에 따로 설정할 건 없다.
istioctl install --set profile=demo -y)kubectl port-forward -n istio-system svc/prometheus 9090:9090
브라우저에서 http://localhost:9090 접속하면 Prometheus UI가 뜬다.
예를 들어 아래 쿼리를 실행해보자:
istio_requests_total{destination_workload="httpbin", destination_workload_namespace="telemetry-test"}

httpbin 서비스로 들어온 요청 수를 보여주는 지표version, source_workload, destination_service, response_code 등 다양한 라벨이 함께 수집됨version="v1"도 함께 수집되어 있음istio_requests_total, istio_tcp_sent_bytes_total 같은 기본 메트릭으로 서비스 간 요청 흐름, 오류율, 지연시간 등을 분석할 수 있음이런 질문에 대한 해답을 Prometheus 쿼리로 바로 얻을 수 있다.
istio_requests_total, istio_request_duration_milliseconds, istio_tcp_sent_bytes_total, istio_response_bytes