[Observability] Istio Envoy Statistics 필터링 실습: 불필요한 메트릭 줄이기

y001·2025년 5월 3일

Istio 실전 스터디

목록 보기
23/26

Istio는 기본적으로 Envoy 프록시를 사이드카로 주입하여 서비스 간 통신을 제어한다. 이 Envoy는 트래픽을 처리하는 동안 수많은 통계 정보를 자동으로 수집해 Prometheus와 같은 모니터링 시스템으로 보낸다. 하지만 기본 설정에서는 너무 많은 메트릭이 생성되며, 그중 상당수는 실제 운영에서 활용되지 않거나, 리소스만 낭비하는 경우가 많다.

이번 실습에서는 공식 문서 Envoy Statistics 내용을 따라가며, 불필요한 Envoy 통계를 비활성화하는 방법을 실습하고 그 결과를 직접 확인해본다.


실습 환경

  • Kubernetes: Minikube v1.35.0, Kubernetes v1.23.17
  • Istio: 1.17.8 (Demo 프로파일 설치)
  • Metric Backend: Prometheus (Istio demo 프로파일 기본 내장)

1. 기존 sleep Deployment 수정: 프록시 설정 주입

먼저, telemetry-test 네임스페이스에 배포되어 있던 sleep 앱의 Deployment를 수정하여, Envoy 프록시에 메트릭 필터링 설정을 주입한다. 핵심은 annotations.proxy.istio.io/config 아래에 proxyMetadata를 명시하는 것이다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sleep
  namespace: telemetry-test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sleep
  template:
    metadata:
      labels:
        app: sleep
      annotations:
        proxy.istio.io/config: |
          proxyMetadata:
            ISTIO_META_DISABLE_STATS_NAME_PREFIXES: "tcp_,cluster_manager"
    spec:
      containers:
        - name: sleep
          image: curlimages/curl
          command: ["/bin/sleep", "3650d"]

위 설정은 Envoy가 수집하는 메트릭 중 "tcp_", "cluster_manager"로 시작하는 항목은 수집하지 않도록 하는 설정이다.


2. 리소스 적용

기존에 배포된 sleep Deployment를 다음 명령으로 교체한다:

kubectl replace -f sleep-patched.yaml --force

3. 적용 결과 확인

Istio가 내장한 Prometheus에 접속하여, 관련 메트릭이 더 이상 수집되지 않는 것을 확인할 수 있다.

kubectl port-forward -n istio-system svc/prometheus 9090:9090

이후 브라우저에서 http://localhost:9090에 접속한 후, 다음과 같은 쿼리를 입력해본다:

tcp_sent_bytes_total
cluster_manager_clusters

이러한 메트릭이 더 이상 검색되지 않으면, 설정이 제대로 적용된 것이다.


정리

이번 실습을 통해 다음과 같은 사실을 확인할 수 있었다:

  • Istio는 기본적으로 수많은 Envoy 메트릭을 생성하지만, 운영 환경에서는 반드시 필요한 메트릭만 골라 수집해야 한다.
  • 이를 위해 사이드카 주입 시 메타데이터 설정을 통해 불필요한 메트릭을 비활성화할 수 있다.
  • 실험은 Deployment의 annotations 필드와 ISTIO_META_DISABLE_STATS_NAME_PREFIXES 환경변수를 통해 쉽게 수행할 수 있다.

이러한 커스터마이징은 대규모 클러스터 운영 시 Prometheus의 저장소 사용량 절감, 모니터링 시스템의 성능 향상, 의미 있는 데이터 중심의 운영에 큰 도움이 된다.

0개의 댓글