etcd 지표 2

진웅·2025년 8월 6일

K8S Basics

목록 보기
34/40

etcd 3.5는 Prometheus 포맷의 메트릭을 제공하며, 클러스터의 상태와 성능을 모니터링하는 데 필수적인 여러 지표들을 포함하고 있습니다. 이러한 지표들은 클라이언트, 서버, Raft, 디스크 등 다양한 측면을 포괄합니다.

etcd 메트릭은 크게 Counter, Gauge, Histogram의 세 가지 유형으로 나뉩니다.

  • Counter: 누적되는 값으로, 시간이 지남에 따라 계속 증가합니다. (예: 총 요청 수)
  • Gauge: 현재 상태를 나타내는 값으로, 언제든지 증가하거나 감소할 수 있습니다. (예: 현재 리더 존재 여부)
  • Histogram: 값의 분포를 측정하며, 지정된 버킷(bucket)에 따라 데이터의 빈도를 기록합니다. (예: 디스크 쓰기 지연 시간)

주요 메트릭 지표 및 운영 기준값

아래 표는 etcd 3.5에서 중요한 메트릭 지표, 값의 단위, 그리고 일반적인 운영 기준값을 요약한 것입니다. 운영 기준값은 클러스터의 워크로드와 환경에 따라 달라질 수 있으므로, 초기 벤치마킹을 통해 자신의 환경에 맞는 최적의 기준을 설정하는 것이 중요합니다.

지표명 (Metric Name)값 단위유형주요 지표 설명운영 기준값 (권장)
etcd_server_leader_changes_seen_total횟수Counter리더 교체가 발생한 총 횟수. 빈번한 리더 교체는 클러스터 불안정성(네트워크 지연, 리소스 부족 등)을 나타냄.0에 가까운 값. 잦은 증가가 발생하면 문제 원인 파악 필요.
etcd_server_proposals_failed_total횟수CounterRaft 제안(proposals)이 실패한 총 횟수. 쿼럼(Quorum) 실패, 느린 팔로워 등으로 인해 발생.0에 가까운 값. 0이 아니면 문제가 있는 것으로 간주.
etcd_disk_wal_fsync_duration_seconds초 (seconds)HistogramWAL(Write-Ahead Log)이 디스크에 동기화되는 데 걸린 시간. etcd의 성능과 안정성에 가장 중요한 지표 중 하나.99%ile 값이 10ms (0.01초) 미만이어야 함. 50ms 이상은 심각한 불안정성 경고.
etcd_disk_backend_commit_duration_seconds초 (seconds)Histogrametcd 백엔드 데이터베이스에 변경 사항이 커밋되는 데 걸린 시간.99%ile 값이 25ms (0.025초) 미만이어야 함.
etcd_mvcc_db_total_size_in_bytes바이트 (bytes)Gaugeetcd 데이터베이스의 총 크기. etcd는 키, 값 뿐만 아니라 수정 이력도 저장하므로 크기 관리가 중요.auto-compactiondefragmentation을 통해 쿼터(quota)의 80% 미만으로 유지 권장.
etcd_network_peer_round_trip_time_seconds초 (seconds)Histogrametcd 멤버 간의 네트워크 왕복 시간. 클러스터의 안정성과 직접적인 관련이 있음.99%ile 값이 50ms (0.05초) 미만이어야 함.
etcd_server_has_leader불리언 (0 또는 1)Gauge현재 클러스터에 리더가 존재하는지 여부. 1은 리더가 있음을, 0은 리더가 없음을 의미.항상 1이어야 함. 0이 되면 클러스터가 동작하지 않음.
etcd_server_proposals_pending횟수Gauge현재 처리 대기 중인 Raft 제안의 수.0에 가까운 값. 높은 값이 지속되면 클러스터가 과부하 상태일 수 있음.
etcd_server_proposals_committed_total횟수Counter성공적으로 커밋된 총 Raft 제안의 수.증가율을 모니터링하여 클러스터의 워크로드를 파악하는 데 사용.
etcd_server_proposals_applied_total횟수Counter성공적으로 적용된 총 Raft 제안의 수.committed 값과 비교하여 차이가 발생하면 문제가 있을 수 있음.

기타 중요한 지표 및 운영 팁

  • etcd_debugging_store_watchers: 현재 etcd 데이터를 감시(watch) 중인 쿼리 수.
  • etcd_server_quota_backend_bytes: etcd 데이터베이스의 스토리지 할당량. 이 값에 도달하면 쓰기 작업이 거부되므로, 주기적인 백업과 압축(compaction)이 중요합니다.
  • etcd_debugging_mvcc_slow_watcher_total: 동기화되지 않은(느린) watcher의 수. watcher가 너무 느리면 etcd가 느려질 수 있습니다.

운영 팁:

  • WAL fsync 지연 시간은 etcd 성능의 핵심입니다. etcd는 데이터 내구성을 위해 모든 쓰기 작업을 WAL에 기록하고 fdatasync를 호출합니다. 이 작업이 느리면 클러스터의 안정성이 떨어집니다. SSD 또는 NVMe 드라이브와 같이 낮은 디스크 지연 시간을 가진 스토리지를 사용하는 것이 필수적입니다.
  • etcdctl defrag 명령어를 사용하여 데이터베이스를 주기적으로 조각 모음하면 공간을 효율적으로 관리할 수 있습니다.
  • etcdctl snapshot을 통해 정기적으로 etcd 데이터를 백업하는 것이 재해 복구에 매우 중요합니다.
profile
bytebliss

0개의 댓글