Envoy 통계

Envoy 통계 (Envoy Statistics)

Envoy 프록시는 네트워크 트래픽에 대한 상세한 통계를 유지해요. 이 페이지에서는 특정 파드 인스턴스에 대한 Envoy 통계를 확인하고 추가 통계를 수집하도록 구성하는 방법을 배워요.

출처: Istio 문서

본문

Envoy 프록시는 네트워크 트래픽에 대한 상세한 통계를 유지해요.

Envoy의 통계는 특정 Envoy 인스턴스의 트래픽만 다뤄요. 서비스별 지속적인 Istio 텔레메트리는 Observability를 참고하세요. Envoy 프록시가 기록하는 통계는 특정 파드 인스턴스에 대한 더 많은 정보를 제공할 수 있어요.

파드의 통계를 보려면:

$ kubectl exec "$POD" -c istio-proxy -- pilot-agent request GET stats

Envoy는 프록시 기능별로 통계를 범위화해서 자신의 동작에 대한 통계를 생성해요. 예를 들면 다음과 같아요.

기본적으로 Istio는 설치된 프록시의 전체 CPU 및 메모리 공간을 줄이기 위해 Envoy가 최소한의 통계 집합을 기록하도록 구성해요. 기본 수집 키는 다음과 같아요.

  • cluster_manager
  • listener_manager
  • server
  • cluster.xds-grpc

통계 데이터 수집에 대한 Envoy 설정을 보려면 istioctl proxy-config bootstrap을 사용하고 Envoy 구성 심층 분석을 따라가 보세요. Envoy는 stats_matcher JSON 요소 안의 inclusion_list와 일치하는 항목에 대해서만 통계 데이터를 수집해요.

Istio 프록시가 추가 통계를 기록하도록 구성하려면 메시 구성에 ProxyConfig.ProxyStatsMatcher를 추가할 수 있어요. 예를 들어 서킷 브레이커, 요청 재시도, 업스트림 연결, 요청 타임아웃에 대한 통계를 전역적으로 활성화하려면 stats matcher를 다음과 같이 지정하세요.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    defaultConfig:
      proxyStatsMatcher:
        inclusionRegexps:
          - ".*outlier_detection.*"
          - ".*upstream_rq_retry.*"
          - ".*upstream_cx_.*"
        inclusionSuffixes:
          - "upstream_rq_timeout"

proxy.istio.io/config 어노테이션을 사용해 프록시별로 전역 통계 매칭 구성을 재정의할 수도 있어요. 예를 들어 위와 같은 통계 생성 포함을 구성하려면 게이트웨이 프록시나 워크로드에 다음 어노테이션을 추가하세요.

metadata:
  annotations:
    proxy.istio.io/config: |-
      proxyStatsMatcher:
        inclusionRegexps:
        - ".*outlier_detection.*"
        - ".*upstream_rq_retry.*"
        - ".*upstream_cx_.*"
        inclusionSuffixes:
        - "upstream_rq_timeout"

더 알아보기 (Learn more)