본문으로 건너뛰기

쿠버네티스 메트릭

쿠버네티스 모니터링이 수집하는 메트릭을 카테고리별로 정리했습니다. 각 카테고리의 Tags(차원)와 Fields(측정값)를 확인할 수 있습니다.

  • 일부 메트릭은 서버 모니터링, 애플리케이션 모니터링과 동일합니다.
  • 메트릭을 직접 검색하거나 차트로 시각화하려면 메트릭 검색, 메트릭스 차트 페이지를 참조하세요.

컨테이너(container) 메트릭

container 카테고리는 컨테이너의 pod에 설정된 모든 사용자 정의 라벨들을 태그로 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분

Tags

TagTypeUnitDescription
agentOid--노드 에이전트 고유 ID(고유값)
agentPcode--프로젝트 코드(고유값)
command--실행 명령어
containerId--컨테이너 ID(고유값)
containerKey--컨테이너 Key
created--컨테이너가 생성된 TimeStamp
image--컨테이너 이미지명
imageHash--이미지 해시 값
imageId--이미지 ID
k8s-app--Pod의 레이블 k8s-app에 대한 값
microOid--컨테이너에 설치된 와탭 APM 에이전트의 고유 ID
name--컨테이너 이름
namespace--컨테이너가 소속된 네임스페이스
namespaceHash--컨테이너가 소속된 네임스페이스 해시 값
okind--컨테이너에 설치된 와탭 APM 에이전트에 지정한 OKIND 고유 ID
okindName--컨테이너에 설치된 와탭 APM 에이전트에 지정한 OKIND 이름
oname--컨테이너에 설치된 와탭 APM 에이전트 이름
onode--컨테이너가 작동 중인 노드 에이전트의 고유 ID
onodeName--컨테이너가 작동 중인 노드 이름
podHash--컨테이너의 Pod 해시 값
podName--컨테이너의 Pod 이름
replicaSetHash--컨테이너의 레플리카셋 해시 값
replicaSetName--컨테이너의 레플리카셋 이름
whatap_project--컨테이너가 속한 와탭 프로젝트 이름

Fields

FieldTypeUnitShortname/Name/Description
blkio_rbps-byteIoReadBytes
Container Block I/O Read Byte
컨테이너 전체 블럭 디바이스의 초당 읽은 바이트 합
blkio_riops-countIoReadIops
Container Block I/O Read IOPS
컨테이너 전체 블럭 디바이스의 초당 읽은 건수 합
blkio_wbps-byteIoWriteBytes
Container Block I/O Write Byte
컨테이너 전체 블럭 디바이스의 초당 쓴 바이트 합
blkio_wiops-countIoWriteIops
Container Block I/O Write IOPS
컨테이너 전체 블럭 디바이스의 초당 쓴 건수 합
cpu_per_quota-percentCpuByLimit
Container CPU Usage by Limit(%)
CPU Limit 기준 CPU 전체 사용률
cpu_quota-millicoresCpuLimit
Container CPU Limit (core)
컨테이너 CPU Limit 할당량
- Limit 미설정인 경우 컨테이너가 작동 중인 해당 노드의 CPU 전체 코어가 밀리코어 단위로 표시됨
cpu_quota_percent-percentCpuLimitByNode
Container CPU Limit by Node(%)
노드 CPU 대비 컨테이너 CPU Limit 할당량
- Limit 미설정인 경우 컨테이너가 작동 중인 해당 노드의 CPU 전체 코어가 퍼센트로 표시됨
cpu_sys-percentCpuSysByNode
Container CPU Sys Usage by Node(%)
노드 CPU 대비 컨테이너 CPU System 사용률
cpu_throttledperiods-countCpuThrottledCnt
Container CPU Throttling Count
컨테이너 CPU Throttled 건수
cpu_throttledtime-nanosecond(ns)CpuThrottledTime
Container CPU Throttling Time
컨테이너 CPU Throttled 시간
cpu_total-percentCpuByNode
Container CPU Usage by Node(%)
노드 CPU 대비 컨테이너 CPU 사용률
cpu_total_milli-millicoresCpuTotUsage
Container CPU Usage (millicore)
컨테이너 CPU 사용량
cpu_user-percentCpuUserByNode
Container CPU User Usage by Node(%)
노드 CPU 대비 컨테이너 CPU User 사용률
cpu_request-millicoresCpuRequest
Container CPU Request (core)
컨테이너 CPU 요청
cpu_per_request-percentCpuByRequest
Container CPU Usage by Request(%)
컨테이너 CPU 요청 대비 사용률
= cpu_total_milli / cpu_request * 100
mem_failcnt-countMemFailCnt
Container Memory Failure Count
컨테이너 메모리 Limit 도달 건수
mem_limit-byteMemLimit
Container Memory Limit (byte)
컨테이너 메모리 Limit 크기
mem_maxusage-byteMemMaxUsage
Container Memory Max Usage (byte)
컨테이너 메모리 최대 사용량 기록값
- 자세한 내용은 하단 안내를 참고하세요.
mem_percent-percentMemWsByLimit
Container Memory Working Set by Limit(%)
컨테이너 메모리 Limit 기준 working set 사용량
= mem_working_set / mem_limit * 100
mem_totalcache-byteMemTotCache
Container Memory Total Cache (byte)
컨테이너 전체 캐시 크기
mem_totalpgfault-countMemTotPageFaultCnt
Container Memory Total Page Fault Count
컨테이너 Page Fault 횟수
mem_totalrss-byteMemTotRss
Container Memory Total RSS (byte)
컨테이너 RSS 메모리 전체 크기
mem_totalrss_percent-percentMemTotRssByLimit
Container Memory Total RSS by Limit (%)
컨테이너 RSS 메모리 전체 사용률
mem_totalunevictable-byteMemTotUnevictable
Container Memory Total Unevictable (byte)
컨테이너 Unevictable Memory 전체 크기
mem_usage-byteMemUsage
Container Memory Usage (byte)
컨테이너 메모리 사용량
mem_working_set-byteMemWs
Container Memory Working Set (byte)
컨테이너 메모리 working set
= mem_usage - inactive file
mem_working_set_percent-percentMemWsByLimit
Container Memory Working Set by Limit (%)
컨테이너 메모리 Limit 기준 working set 사용량
= mem_working_set / mem_limit * 100
mem_request-byteMemRequest
Container Memory Request (byte)
컨테이너 메모리 Request 크기
mem_per_request-percentMemWsByRequest
Container Memory Working Set by Request (%)
컨테이너 메모리 Request 기준 working set 사용량
= mem_working_set / mem_request * 100
network_rbps-byteNetRxBytes
Container Network Receive Byte
컨테이너 전체 블럭 디바이스의 초당 읽기 바이트 합
network_rdropped-byteNetRxDropped
Container Network Receive Dropped
컨테이너 네트워크 수신 dropped 건수
network_rerror-byteNetRxError
Container Network Receive Error
컨테이너 네트워크 수신 에러 건수
network_riops-byteNetRxIops
Container Network Receive IOPS
컨테이너 네트워크 수신 건수
network_wbps-byteNetTxByes
Container Network Transmit Byte
컨테이너 네트워크 송신 데이터 크기
network_wdropped-countNetTxDropped
Container Network Transmit Dropped
컨테이너 네트워크 송신 dropped 건수
network_werror-countNetTxError
Container Network Transmit Error
컨테이너 네트워크 송신 에러 건수
network_wiops-countNetTxIops
Container Network Transmit IOPS
컨테이너 네트워크 송신 건수
node_cpu-percentConNodeCpu
Container Work Node CPU Usage (%)
컨테이너가 실행 중인 노드의 CPU 사용량
node_mem-percentConNodeMem
Container Work Node Memory Usage (%)
컨테이너가 실행 중인 노드의 메모리 사용량
phasestring-Pod 라이프사이클
① PENDING
② RUNNING
③ SUCCEEDED
④ FAILED
⑤ UNKNOWN
restart_countinteger-ConRestartCnt
Container Restart Count
컨테이너 재시작 횟수
stateinteger-ConState
Container Current State
컨테이너 상태 코드
① RUNNING = 114
② PAUSE = 112
③ RESTARTING = 101
④ OOMKILLED = 111
⑤ DEAD = 100
⑥ WAITING = 119
statusstring-ConStatus
Container Current Status
컨테이너 상태 정보
① running 상태: uptime 정보 표시
② waiting/terminated 상태: 상태에 대한 reason 정보 표시
노트

mem_maxusage는 컨테이너가 실행되는 동안 기록된 메모리 최대 사용량을 나타냅니다. 그러나 Linux 커널 버전이 5.19보다 낮은 경우, 이 지표의 원본 데이터가 지원되지 않을 수 있습니다. 이러한 경우 해당 값이 0으로 표시될 수 있습니다. 해당 지표를 정상적으로 수집하기 위해서는 Linux 커널 버전을 5.19 이상으로 업데이트해야 합니다.

쿠버네티스 노드(kube_node) 메트릭

kube_node 카테고리는 노드에 설정된 모든 사용자 정의 라벨들을 태그로 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
nodeName--노드 이름

다음 태그가 추가되었습니다.

TagTypeUnitDescription
infrastructureTypestring-노드 인프라 유형
- baremetal, vm, unknown

Fields

FieldTypeUnitDescription
allocatable_cpu-millicores노드 할당 가능한 CPU량
allocatable_memory-byte노드 할당 가능한 메모리량
allocatable_podsinteger-노드 할당 가능한 Pod 수
limit_cpu-millicores노드 CPU Limit 합계
limit_memory-byte노드 메모리 Limit 합계
podsinteger-노드 Pod 총 개수
request_cpu-millicores노드 CPU Request 합계
request_memory-byte노드 메모리 Request 합계

노드의 GPU 수량은 디바이스 타입별 병렬 리스트 필드로 수집합니다. *_types*_counts는 인덱스가 1:1로 대응하며, nvidia.com/gpu(whole-GPU)와 모든 MIG 프로파일(nvidia.com/mig-*)을 개별 항목으로 담습니다.

FieldTypeUnitDescription
gpu_capacity_typeslist-노드 GPU capacity의 디바이스 타입 목록
gpu_capacity_countslistcount위 타입별 capacity 수량(인덱스 1:1 대응)
gpu_allocatable_typeslist-노드 GPU allocatable의 디바이스 타입 목록
gpu_allocatable_countslistcount위 타입별 allocatable 수량(인덱스 1:1 대응)
노트

v1.9.14부터 whole-GPU 전용 스칼라 필드 capacity_gpu, allocatable_gpu는 제거되었습니다. MIG 환경에서 스칼라 필드가 nvidia.com/gpu만 담고 MIG 슬라이스를 누락해 집계가 거짓 합계가 되는 문제를 차단하기 위함입니다. whole-GPU 수량도 리스트의 nvidia.com/gpu 항목으로 확인하며, 전체·타입별 집계는 *_counts를 합산합니다.

카테고리제거된 스칼라 필드대체 리스트 필드
kube_nodecapacity_gpu, allocatable_gpugpu_capacity_types/gpu_capacity_counts, gpu_allocatable_types/gpu_allocatable_counts

쿠버네티스 노드 성능(kube_node_perf) 메트릭

kube_node_perf 카테고리는 노드에 스케줄링된 모든 Pod/Container의 리소스 사용량과 할당량을 합산하여 노드 단위 성능 지표를 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
onode--노드 해시값
onodeName--노드 이름
agentPcode--에이전트 프로젝트 코드
agentOid--에이전트 고유 ID

다음 태그가 추가되었습니다.

TagTypeUnitDescription
cgroup_version--노드 호스트의 cgroup 마운트 모드
- unified(cgroup v2), hybrid, legacy(cgroup v1), unknown(접근 불가)

노드 호스트의 /sys/fs/cgroup 마운트 모드를 직접 감지해 태그로 수집합니다. 노드별 cgroup 버전 현황을 서버에서 집계할 수 있습니다.

노드 가상화 판별 태그가 추가되었습니다.

TagTypeUnitDescription
virtualizationstring-노드 가상화 여부
- baremetal, vm, unknown
hypervisorstring-하이퍼바이저 벤더명
- 베어메탈이거나 판별할 수 없으면 -

노드 호스트의 DMI 정보(/sys/class/dmi/id/sys_vendor, product_name)에서 벤더를 먼저 대조하고, 일치하는 벤더가 없으면 /proc/cpuinfo의 hypervisor 플래그로 가상 머신 여부만 판정합니다. DMI 정보가 없는 비 x86 노드는 unknown으로 수집합니다.

QEMU/KVM, VMware, Hyper-V, Xen, VirtualBox, Parallels, Amazon EC2, Google GCE, OpenStack, Nutanix AHV, oVirt/RHV, Alibaba Cloud 등의 벤더를 인식합니다. 값은 노드 기동 중 변하지 않으므로 최초 1회 읽어 캐시합니다.

제약: Amazon EC2 .metal 인스턴스처럼 클라우드 사업자가 제공하는 베어메탈은 DMI 정보만으로 일반 인스턴스와 구분되지 않아 vm으로 판별됩니다.

노드 에이전트 1.9.21 버전 이상에서 수집합니다.

Fields

FieldTypeUnitDescription
cpuRequestlongmillicores노드 내 전체 컨테이너 CPU Request 합계
cpuLimitlongmillicores노드 내 전체 컨테이너 CPU Limit 합계
cpuTotallongmillicores노드 내 전체 컨테이너 CPU 사용량 합계
cpuPerRequestfloatpercent노드 CPU Request 대비 실제 CPU 사용률
cpuPerLimitfloatpercent노드 CPU Limit 대비 실제 CPU 사용률
memoryRequestlongbyte노드 내 전체 컨테이너 Memory Request 합계
memoryLimitlongbyte노드 내 전체 컨테이너 Memory Limit 합계
memTotallongbyte노드 내 전체 컨테이너 Memory 사용량 합계
memoryPerRequestfloatpercent노드 Memory Request 대비 실제 Memory 사용률
memoryPerLimitfloatpercent노드 Memory Limit 대비 실제 Memory 사용률

다음 필드가 추가되었습니다.

FieldTypeUnitDescription
conntrack_countlongcount현재 conntrack 엔트리 수
conntrack_maxlongcountconntrack 엔트리 상한(nf_conntrack_max)
conntrack_pctfloatpercent상한 대비 사용률
  • 엔트리 수는 호스트 network namespace 기준 값을 읽기 위해 /proc/1/net/stat/nf_conntrack 경로에서 수집합니다.
  • nf_conntrack 모듈이 로드되지 않은 노드는 필드를 전송하지 않습니다. 값 0과 미수집을 구분하기 위한 동작입니다.
  • 노드 에이전트 1.9.18 버전 이상에서 수집합니다. collect_conntrack_enabled 옵션으로 수집을 끌 수 있습니다.

쿠버네티스 이벤트(kube_event) 메트릭

kube_event 카테고리는 클러스터 프로젝트의 경우 클러스터 전체를 대상으로 데이터를 수집하며 네임스페이스 프로젝트는 해당 네임스페이스에서 발생한 이벤트에 대해서만 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
field_path--Field Path
kind--이벤트가 발생한 오브젝트 종류
name--이벤트가 발생한 쿠버네티스 오브젝트명
namespace--이벤트가 발생한 네임스페이스명
reason--이벤트 발생 사유
type--이벤트 유형
- Warning 또는 Normal
uid--UID
- 이벤트가 발생한 오브젝트

Fields

FieldTypeUnitDescription
actionstring-액션 이름
count-count이벤트 발생 건수
event_timeinteger-이벤트 최초 발생 TimeStamp
first_timestampinteger-이벤트 최초 발생 시간
last_timestampinteger-이벤트 마지막 발생 시간
messagestring-이벤트 메시지
reasonFiledstring-이벤트 Reason
reporting_componentstring-현재 이벤트를 보고하는 컴포넌트
reporting_instancestring-현재 이벤트를 보고하는 인스턴스
series_last_observed_timeinteger-series last observed time

쿠버네티스 클러스터(kube_stat) 메트릭

kube_stat 카테고리는 클러스터 프로젝트의 경우 클러스터 전체 대상으로 수집하고 네임스페이스 프로젝트는 해당 네임스페이스와 연관된 오브젝트를 대상으로만 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
name--kube_stat(고정 값)

다음 태그가 추가되었습니다.

TagTypeUnitDescription
namespace--수집 대상 네임스페이스명

Fields

FieldTypeUnitDescription
alloctable_cpu-millicores클러스터 전체 코어 수(클러스터 프로젝트 Only)
alloctable_ephemeral-storage-byte클러스터 전체 할당 가능한 ephemeral storage(클러스터 프로젝트 Only)
alloctable_hugepages-1gi-byte클러스터 전체 할당 가능한 hugepages-1Gi(클러스터 프로젝트 Only)
alloctable_hugepages-2mi-byte클러스터 전체 할당 가능한 hugepages-2Mi(클러스터 프로젝트 Only)
alloctable_memory-byte클러스터 전체 할당 가능한 메모리(클러스터 프로젝트 Only)
alloctable_podsinteger-할당 가능한 Pod 수
available_podinteger-Phase가 Running 상태인 Pod의 수
desired_podinteger-metadata.ownerReferences 없이 배포된 Pod 수와 쿠버네티스 오브젝트(ReplicaSet, Daemonset, StatefulSet)에 정의된 Desired Pod 수의 합
kubectl get pods -A로 조회한 Pod 수와 동일
nodesinteger-노드 수
pod_phase_Pendinginteger-Pending 상태 Pod 수
pod_phase_Runninginteger-Running 상태 Pod 수
running_containersinteger-Running 컨테이너 수
stopped_containersinteger-Stopped 컨테이너 수
total_available_cpuinteger-할당 가능한 CPU 총합
total_available_memoryinteger-할당 가능한 Memory 총합
total_limit_cpu-millicoresLimit CPU 총합
total_limit_memory-byteLimit Memory 총합
total_request_cpu-millicoresRequest CPU 총합
total_request_memory-byteRequest Memory 총합
unavailable_podinteger-Phase가 Running 상태가 아닌(Pending, Failed, Succedded) Pod 수
waiting_containersinteger-Waiting Container 수

네임스페이스에 설정된 ResourceQuota의 상한과 소진량을 수집합니다. 다음 필드가 추가되었습니다.

FieldTypeUnitDescription
quota_countlongcount네임스페이스에 설정된 ResourceQuota 개수
quota_request_cpu_hardlongmillicoresCPU Request 쿼터 상한
quota_request_cpu_usedlongmillicoresCPU Request 쿼터 소진량
quota_request_memory_hardlongbyteMemory Request 쿼터 상한
quota_request_memory_usedlongbyteMemory Request 쿼터 소진량
quota_limit_cpu_hardlongmillicoresCPU Limit 쿼터 상한
quota_limit_cpu_usedlongmillicoresCPU Limit 쿼터 소진량
quota_limit_memory_hardlongbyteMemory Limit 쿼터 상한
quota_limit_memory_usedlongbyteMemory Limit 쿼터 소진량
quota_pods_hardlongcountPod 수 쿼터 상한
quota_pods_usedlongcountPod 수 쿼터 소진량
  • 쿠버네티스가 계산한 status.hardstatus.used 값을 그대로 사용합니다.
  • 한 네임스페이스에 스코프가 다른 ResourceQuota가 여러 개 있으면 항목별로 합산합니다.
  • 쿼터가 설정되지 않은 네임스페이스는 quota_count0으로 전송하고 나머지 필드는 전송하지 않습니다. 쿼터 미설정과 상한 0을 구분하기 위한 동작입니다.
  • 마스터 에이전트 1.9.17 버전 이상에서 수집합니다.

권한: ClusterRole에 core API resourcequotaslist 권한이 필요합니다. 권한이 없으면 ResourceQuota 수집만 생략되고 나머지 kube_stat 수집은 계속됩니다.

Pod(kube_pod) 메트릭

kube_pod 카테고리는 Pod에 설정된 모든 사용자 정의 라벨들을 태그로 수집합니다.

  • 대상: 마스터(클러스터) 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분

Tags

TagTypeUnitDescription
agentOid--노드 에이전트 고유 ID(고유값)
agentPcode--프로젝트 코드(고유값)
command--실행 명령어
containerIds--Pod에 속해있는 컨테이너 ID
containerIdsCount--containerIds의 개수
containerKeys--Pod 에 속해있는 컨테이너 ID 의 해시 값
containerKeysCount--containerKeys의 개수
DaemonSet--Pod의 DaemonSet 이름
Deployment--Deployment
k8s-app--Pod의 레이블 k8s-app에 대한 값
microOid--Pod의 컨테이너 내부 애플리케이션에서 실행중인 에이전트의 ID
microOids--Pod 안의 복수개 컨테이너 내부 애플리케이션에서 실행 중인 에이전트의 복수개 ID
microOidsCount--microOids의 개수
name--Pod 이름
onames--Pod의 컨테이너 내부 애플리케이션에서 실행중인 에이전트의 명칭
onamesCount--onames의 개수
podName--Pod 이름
namespace--Pod가 소속된 네임스페이스
namespaceHash--Pod가 소속된 네임스페이스 해시 값
replicaSetHash--Pod의 ReplicaSet 해시 값
replicaSetName--Pod의 ReplicaSet 이름
whatap_project--Pod가 속한 와탭 프로젝트 이름

Fields

FieldTypeUnitShortname, Name, Description
blkio_rbps-byteIoReadBytes
Pod Block I/O Read Byte
Pod 전체 블럭 디바이스의 초당 읽은 바이트 합
blkio_riops-countIoReadIops
Pod Block I/O Read IOPS
Pod 전체 블럭 디바이스의 초당 읽은 건수 합
blkio_wbps-byteIoWriteBytes
Pod Block I/O Write Byte
Pod 전체 블럭 디바이스의 초당 쓴 바이트 합
blkio_wiops-countIoWriteIops
Pod Block I/O Write IOPS
Pod 전체 블럭 디바이스의 초당 쓴 건수 합
cpu_per_limit-percentCpuByLimit
Pod CPU Usage by Limit (%)
CPU Limit 기준 CPU 전체 사용률
cpu_per_request-percentCpuByRequest
Pod CPU Usage by Request (%)
CPU Request 기준 CPU 전체 사용률
cpu_quota_percent-percentCpuLimitByNode
Pod CPU Limit by Node (%)
노드 CPU 대비 Pod CPU Limit 할당량
- Limit 미설정인 경우 Pod가 작동 중인 해당 노드의 CPU 전체 코어가 퍼센트로 표시됨
cpu_sys-percentCpuSysByNode
Pod CPU Sys Usage by Node (%)
노드 CPU 대비 Pod CPU System 사용률
cpu_throttledperiods-countCpuThrottledCnt
Pod CPU Throttling Count
Pod CPU Throttled 건수
cpu_throttledtime-nanosecond(ns)CpuThrottledTime
Pod CPU Throttling Time
Pod CPU Throttled 시간
cpu_total-percentCpuByNode
Pod CPU Usage by Node (%)
노드 CPU 대비 Pod CPU 사용률
cpu_total_milli-millicoresCpuTotUsage
Pod CPU Usage (millicore)
Pod CPU 사용량
cpu_user-percentCpuUserByNode
Pod CPU User Usage by Node (%)
노드 CPU 대비 Pod CPU User 사용률
cpu_request-millicoresCpuRequest
Pod CPU Request (core)
Pod CPU 요청
cpu_per_request-percentCpuByRequest
Pod CPU Usage by Request (%)
Pod CPU 요청 대비 사용률
= cpu_total_milli / cpu_request * 100
mem_totalcache-byteMemTotCache
Pod Memory Total Cache (byte)
Pod 전체 캐시 크기
mem_totalpgfault-countMemTotPageFaultCnt
Pod Memory Total Page Fault Count
Pod Page Fault 횟수
mem_totalrss-byteMemTotRss
Pod Memory Total RSS (byte)
Pod RSS 메모리 전체 크기
mem_totalrss_percent-percentMemTotRssByLimit
Pod Memory Total RSS by Limit (%)
Pod RSS 메모리 전체 사용률
mem_totalunevictable-byteMemTotUnevictable
Pod Memory Total Unevictable (byte)
Pod Unevictable Memory 전체 크기
mem_usage-byteMemUsage
Pod Memory Usage (byte)
Pod 메모리 사용량
mem_working_set-byteMemWs
Pod Memory Working Set (byte)
Pod 메모리 working set
= mem_usage - inactive file
memory_request-byteMemRequest
Pod Memory Request (byte)
Pod 메모리 요청량
memory_limit-byteMemLimit
Pod Memory Limit (byte)
Pod 메모리 Limit 할당량
memory_per_request-percentMemByRequest
Pod Memory Working Set By Request (%)
Pod 메모리 요청량 기준 Working Set 사용량
memory_per_limit-percentMemByLimit
Pod Memory Working Set By Limit (%)
Pod 메모리 Limit 기준 Working Set 사용량
network_rbps-byteNetRxBytes
Pod Network Receive Byte
Pod 전체 블럭 디바이스의 초당 읽기 바이트 합
network_rdropped-byteNetRxDropped
Pod Network Receive Dropped
Pod 네트워크 수신 dropped 건수
network_rerror-byteNetRxError
Pod Network Receive Error
Pod 네트워크 수신 에러 건수
network_riops-byteNetRxIops
Pod Network Receive IOPS
Pod 네트워크 수신 건수
network_wbps-byteNetTxByes
Pod Network Transmit Byte
Pod 네트워크 송신 데이터 크기
network_wdropped-countNetTxDropped
Pod Network Transmit Dropped
Pod 네트워크 송신 dropped 건수
network_werror-countNetTxError
Pod Network Transmit Error
Pod 네트워크 송신 에러 건수
network_wiops-countNetTxIops
Pod Network Transmit IOPS
Pod 네트워크 송신 건수
phasestring-Phase
Pod Current Phase
Pod 라이프사이클
① PENDING
② RUNNING
③ SUCCEEDED
④ FAILED
⑤ UNKNOWN

다음 필드는 내부용으로 예약되었습니다.

FieldTypeUnitDescription
kube_sless_normal--쿠버네티스 정보성 이벤트 발생 건수
kube_sless_warning--쿠버네티스 경고 이벤트 발생 건수
micro_sful_critical--apm 심각 상태 기반 이벤트 발생 건수
micro_sful_info--apm 정보성 상태 기반 이벤트 발생 건수
micro_sful_warning--apm 경고 상태 기반 이벤트 발생 건수
micro_sless_critical--apm 심각 무상태 이벤트 발생 건수
micro_sless_info--apm 정보성 무상태 이벤트 발생 건수
micro_sless_warning--apm 경고 무상태 이벤트 발생 건수
sful_critical--메트릭스 심각 상태 기반 이벤트 발생 건수
sful_info--메트릭스 정보성 상태 기반 이벤트 발생 건수
sful_warning--메트릭스 경고 상태 기반 이벤트 발생 건수
sless_critical--메트릭스 심각 무상태 이벤트 발생 건수
sless_info--메트릭스 정보성 무상태 이벤트 발생 건수
sless_warning--메트릭스 경고 무상태 이벤트 발생 건수

Pod의 GPU Request·Limit 수량은 디바이스 타입별 병렬 리스트 필드로 수집합니다. *_types*_counts는 인덱스가 1:1로 대응하며, nvidia.com/gpu(whole-GPU)와 모든 MIG 프로파일(nvidia.com/mig-*)을 개별 항목으로 담습니다.

FieldTypeUnitDescription
gpu_request_typeslist-Pod GPU Request의 디바이스 타입 목록
gpu_request_countslistcount위 타입별 Request 수량(인덱스 1:1 대응)
gpu_limit_typeslist-Pod GPU Limit의 디바이스 타입 목록
gpu_limit_countslistcount위 타입별 Limit 수량(인덱스 1:1 대응)
노트

v1.9.14부터 whole-GPU 전용 스칼라 필드 gpu_request, gpu_limit은 제거되었습니다. MIG 환경에서 스칼라 필드가 nvidia.com/gpu만 담고 MIG 슬라이스를 누락해 집계가 거짓 합계가 되는 문제를 차단하기 위함입니다. whole-GPU 수량도 리스트의 nvidia.com/gpu 항목으로 확인하며, 전체·타입별 집계는 *_counts를 합산합니다.

쿠버네티스 Pod 통계(kube_pod_stat) 메트릭

kube_pod_stat 카테고리 클러스터 프로젝트는 클러스터 전체를 대상으로 데이터를 수집하며 네임스페이스 프로젝트는 해당 네임스페이스에 소속된 Pod에 대해서만 수집합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
kind--유형
- 클러스터 프로젝트의 경우 cluster 고정 값을 가지며 네임스페이스 프로젝트의 경우 Deployment 또는 ReplicaSet만 수집
name--쿠버네티스 자원 이름
- 클러스터 프로젝트는 name 값이 없으며 네임스페이스 프로젝트는 Deployment 또는 ReplicaSet의 이름

Fields

FieldTypeUnitDescription
available_podinteger-Phase가 Running 상태인 Pod의 수
desired_podinteger-metadata.ownerReferences 없이 배포된 Pod 수와 쿠버네티스 오브젝트(ReplicaSet, Daemonset, StatefulSet)에 정의된 Desired Pod 수의 합
kubectl get pods -A로 조회한 Pod 수와 동일
limit_cpu-millicoresCPU Limit 사용량
limit_memory-byteMemory Limit 사용량
request_cpu-millicoresCPU Request 사용량
request_memory-byteMemory Request 사용량
running_containerinteger-Running Container 수
stopped_containerinteger-Stopped Container 수
waiting_containerinteger-Waiting Container 수

쿠버네티스 Pod 볼륨(kube_pod_volume) 메트릭

kube_pod_volume 카테고리는 노드에 실행 중인 Pod에 마운트된 볼륨의 용량·i-node 사용량을 수집합니다. 앱 파드의 PVC 볼륨은 디렉토리명이 PV 이름이므로 volumeName 태그로 PVC의 spec.volumeName과 조인할 수 있습니다.

Tags

TagTypeUnitDescription
hostDevice--볼륨이 위치한 호스트 디바이스
hostFileSystem--볼륨의 파일 시스템
hostMountPath--호스트 상 볼륨 마운트 경로
volumeName--볼륨 이름
- PVC 볼륨의 경우 PV 이름(예: pvc-...). PVC의 spec.volumeName과 조인 가능
volumePlugin--볼륨 플러그인
- 예: kubernetes.io~csi, kubernetes.io~nfs, volume-subpaths

Fields

FieldTypeUnitDescription
capacitylongbyte볼륨 전체 용량
availablelongbyte볼륨 사용 가능 용량
availablePercentfloatpercent볼륨 사용 가능 용량 비율
usedPercentfloatpercent볼륨 사용률
freelongbyte볼륨 여유 용량
freePercentfloatpercent볼륨 여유 용량 비율
totalInodelongcount볼륨 전체 i-node 수
usedInodelongcount볼륨 사용 중인 i-node 수
usedInodePercentfloatpercent볼륨 i-node 사용률

emptyDir 볼륨 수집이 추가되었습니다. 기본(디스크) medium emptyDir은 별도 마운트가 아니라 노드 루트 파일 시스템의 디렉터리여서 df 기반 수집에 잡히지 않았습니다. 노드 에이전트가 kubelet 볼륨 디렉터리를 직접 조회해 같은 kube_pod_volume 카테고리로 전송합니다.

  • 조회 경로: {HOST_PREFIX}{kubelet_root_dir}/pods/{podUid}/volumes/kubernetes.io~empty-dir/{volumeName}
  • 수집 주기: 60초. 디렉터리 조회 비용이 커서 5초 수집 주기와 분리합니다.
  • emptyDir 볼륨의 volumePlugin 태그 값은 kubernetes.io~empty-dir입니다.

다음 태그가 추가되었습니다.

TagTypeUnitDescription
volumeTypestring-볼륨 종류
- emptyDir 볼륨은 EmptyDir
emptyDirMediumstring-emptyDir 저장 매체
- Memory 또는 Disk. 파드 spec의 emptyDir.medium 기준이며 미지정은 Disk
emptyDirSpecConfirmedstring-파드 spec 확인 여부
- true는 spec으로 확인된 값, false는 kubelet 경로와 파일 시스템 종류로 추정한 값

다음 필드가 추가되었습니다.

FieldTypeUnitDescription
usedSpacelongbyte볼륨 사용량 합계
fileCountlongcount볼륨 내 파일 수
sizeLimitlongbyte파드 spec의 emptyDir.sizeLimit
- 미설정 시 전송하지 않음
truncatedinteger-수집 상한 초과 여부
- 1이면 상한에 걸려 값이 실제보다 작음

capacity, available, usedPercent는 볼륨 용량을 확정할 수 있을 때만 전송합니다.

  • sizeLimit이 있으면 그 값을 볼륨 용량으로 사용합니다.
  • sizeLimit이 없고 medium이 Memory면 kubelet이 만든 tmpfs 총량을 용량으로 사용합니다. tmpfs 총량의 기본값은 노드 메모리의 절반입니다.
  • sizeLimit이 없는 Disk medium은 상한이 없어 용량을 만들지 않습니다. 이 경우 파드의 container.ephemeral_storage_limit과 비교하세요.

노드 에이전트 1.9.23 버전 이상에서 위 태그와 필드를 모두 전송합니다. 수집 활성화와 비용 상한 옵션은 쿠버네티스 에이전트 옵션 설정을 참조하세요.

쿠버네티스 Horizontal Pod Autoscaler(HPA)(kube_hpa_stat) 메트릭

와탭에서 사용하는 ClusterRole에 HPA가 추가되어야 지표 수집이 시작됩니다.

  • 대상: 클러스터 프로젝트
  • 수집 간격: 5초
  • 통계 데이터: 5분, 1시간

Tags

TagTypeUnitDescription
name--HPA 이름

다음 태그가 추가되었습니다.

TagTypeUnitDescription
scaleTargetKindstring-스케일 대상 오브젝트 종류(spec.scaleTargetRef.kind)
scaleTargetNamestring-스케일 대상 오브젝트 이름(spec.scaleTargetRef.name)
scaleTargetApiVersionstring-스케일 대상 오브젝트 API 버전
creationTimeMillislong-HPA 생성 시각(epoch ms)
- 값이 없으면 전송하지 않음

HPA의 스케일 대상은 spec.scaleTargetRef에 있습니다. ownerReferences 기반인 owner_kind, owner_name, owner_id 태그는 HPA에서 대부분 빈 값이므로 스케일 대상은 scaleTarget* 태그로 확인하세요. 기존 태그는 하위 호환을 위해 유지합니다.

마스터 에이전트 1.9.24 버전 이상에서 수집합니다.

Fields

FieldTypeUnitDescription
currentReplicasintegercount현재 레플리카 수
desiredReplicasintegercountDesired 레플리카 수
lastScaleTimeintegercount마지막으로 스케일이 변경된 TimeStamp
maxReplicasintegercount최대 레플리카 수
minReplicasintegercount최소 레플리카 수

쿠버네티스 HPA 목록(kube_hpa) 메트릭

kube_hpa 카테고리는 kubectl get hpa -o wide 결과와 동등한 HPA 목록 데이터를 수집합니다. 시계열 지표 성격인 kube_hpa_stat과는 별개 카테고리입니다.

  • 대상: 클러스터 프로젝트
  • 수집 간격: 30초
  • 요구 버전: 마스터 에이전트 1.9.24 이상

Tags

TagTypeUnitDescription
hpaUidstring-HPA UID(고유값)
hpaNamestring-HPA 이름
namespacestring-HPA가 소속된 네임스페이스
creationTimeMillislong-HPA 생성 시각(epoch ms)
scaleTargetKindstring-스케일 대상 오브젝트 종류
scaleTargetNamestring-스케일 대상 오브젝트 이름
scaleTargetApiVersionstring-스케일 대상 오브젝트 API 버전

Fields

FieldTypeUnitDescription
minReplicasintegercount최소 레플리카 수
maxReplicasintegercount최대 레플리카 수
currentReplicasintegercount현재 레플리카 수
desiredReplicasintegercountDesired 레플리카 수
targetMetricTypelist-스케일 기준 메트릭 종류 목록
targetValuelist-메트릭별 목표값 목록
currentValuelist-메트릭별 현재값 목록
conditionAbleToScalestring-AbleToScale 컨디션 상태
conditionScalingActivestring-ScalingActive 컨디션 상태
conditionScalingLimitedstring-ScalingLimited 컨디션 상태

targetMetricType, targetValue, currentValue는 같은 인덱스가 한 메트릭에 대응하는 병렬 리스트입니다. HPA는 CPU, 메모리, 사용자 정의 메트릭을 동시에 가질 수 있어 값 하나로는 표현되지 않습니다.

  • 값은 kubectl 표기와 같은 문자열입니다(예: 50%, 100m).
  • metrics-server가 없어 현재값을 확보하지 못하면 <unknown>으로 수집합니다.
  • Resource 메트릭 외에 Pods, External, Object 메트릭은 각각 pods:, external:, object: 접두어를 붙여 담습니다.
  • autoscaling/v2를 우선 사용하며 미지원 클러스터는 autoscaling/v1로 대체합니다.

ClusterRole에 horizontalpodautoscalers 권한이 이미 포함되어 있어 추가 권한 설정은 필요하지 않습니다.

프로세스(kube_process) 메트릭

노트

쿠버네티스 에이전트 1.7.12 버전 이상이 필요합니다. 에이전트 업데이트에 대한 자세한 내용은 다음 문서를 참조하세요.

노드에 존재하는 쿠버네티스 관련 프로세스를 모니터링할 때 수집됩니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트

  • 수집 간격: 5초

  • 통계 데이터: 5분

Tags

TagTypeUnitDescription
ppidstring-부모 프로세스 ID
/proc/[pid]/status::PPid
pidstring-프로세스 ID
/proc/[pid]/status::Pid
cmd1string-명령어 이름
/proc/[pid]/status::Name
cmd2string-명령어 라인(전체 명령어와 인자)
/proc/[pid]/cmdline
userstring-사용자 ID 또는 사용자 이름
/proc/[pid]/status::Uid
onodeNamestring-프로세스의 노드 이름
컨테이너 시스템 환경변수 (NODE_IP)
createTimeTimeStamp-프로세스 시작 시간
/proc/uptime 통해 계산된 필드

Fields

FieldTypeUnitDescription
cpufloatpercent(%)CPU 사용률
- /proc/[pid]/stat을 통해 계산된 필드
memoryfloatpercent(%)메모리 사용률
- /proc/[pid]/statm을 통해 계산된 필드
rsslongbyte실제 메모리 사용량 (Resident Set Size)
- /proc/[pid]/status의 VmRSS
uidstring-사용자 ID 또는 사용자 이름
- /proc/[pid]/status의 Uid
statestring-프로세스 상태
- /proc/[pid]/status의 State
sharedMemorylongbyte공유 메모리 크기
- /proc/[pid]/statm을 통해 계산된 필드
openFileDescriptorsinteger-프로세스가 열어둔 파일 디스크립터 수
- /proc/[pid]/fd를 통해 계산된 필드
vmSizelongbyte가상 메모리 크기 (Virtual Memory Size)
- /proc/[pid]/status의 VmSize
threadsinteger-프로세스가 생성한 스레드 수
- /proc/[pid]/status의 Threads

Kubernetes 환경의 리눅스 프로세스 상태

리눅스에서 /proc/[pid]/status 파일의 State 필드가 프로세스의 현재 상태를 표시합니다. 각 상태 값의 의미는 다음과 같습니다.

CodeDescription
R (Running)실행 중
- 프로세스가 실행 중이거나 실행될 준비가 되어 있는 상태
S (Sleeping)대기 중
- 인터럽트 가능한 수면 상태로, 대기 중이며 이벤트를 기다리고 있는 상태
D (Disk Sleep)디스크 수면
- 인터럽트 불가능한 수면 상태로, 일반적으로 I/O 작업을 기다리는 중인 상태
R (Zombie)좀비 상태
- 프로세스가 종료되었으나 아직 부모 프로세스가 종료 상태를 수집하지 않은 상태
T (Stopped)중지
- 프로세스가 작업 제어 신호에 의해 중지된 상태 (SIGSTOP 등) 또는 디버거에 의해 중지된 상태
t (Tracing stop)추적 중지
- 디버거에 의해 추적 중인 상태 (소문자 t로 표시됨)
X (Dead)죽은 상태
- 프로세스가 죽은 상태 (일반적으로 보지 않음)
x (Dead)죽은 상태
- 커널 쓰레드의 죽은 상태 (일반적으로 보지 않음)
K (WakeKill)강제 종료
- 깨우기 신호를 무시하고 즉시 죽은 상태
W (Waking)깨우기 중
- 깨우기 신호를 받아 깨워지는 중인 상태
I (Idle)유휴 상태
- 커널 스레드가 유휴 상태 (일반적으로 유저 공간 프로세스에는 보이지 않음)
노트

Kubernetes는 컨테이너와 노드의 리소스를 효율적으로 관리하기 때문에, 컨테이너 내부에서 실행되는 다수의 프로세스가 실제로 대기 상태를 유지합니다. 이에 따라 대부분의 프로세스는 Sleeping 상태일 수 있습니다.

에이전트 상태(agent_status_summary) 메트릭

에이전트 상태와 관련한 지표를 10초 간격으로 수집한 카테고리입니다.

Fields

FieldTypeUnitDescription
inActTime-milliseconds(ms)에이전트가 비활성화된 상태로 유지된 시간
isActiveBoolean-현재 에이전트의 활성 상태 여부 (true / false)
isRestartBoolean-에이전트가 재시작되었는지 여부 (true / false)
lastActTime-milliseconds(ms)마지막으로 에이전트가 활성화된 상태의 시각
- 0: 비활성화된 경우
oid--프로젝트에 포함된 각 에이전트의 고유 식별자
oType--에이전트 종류
- 1: 애플리케이션 에이전트
- 2: subType 참조
startTime-milliseconds(ms)에이전트가 시작된 시점을 나타내는 타임스탬프
subType--에이전트 종류
-9: 노드 에이전트
- 10: 마스터 에이전트

Ingress(kube_ingress) 메트릭

노트

쿠버네티스 에이전트 1.7.13 버전 이상이 필요합니다. 에이전트 업데이트에 대한 자세한 내용은 다음 문서를 참조하세요.

Ingress 리소스에 대한 메타 데이터와 관련 정보를 모니터링할 때 수집됩니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트

  • 수집 간격: 30초

  • 통계 데이터: 5분

Tags

TagTypeUnitDescription
ingressUidstring-Ingress 리소스의 고유 ID
ingressNamestring-Ingress 리소스의 이름
ingressNamespacestring-Ingress 리소스의 네임스페이스
creationTimeMillislongmilliseconds(ms)Ingress 리소스 생성 시간
ingressClassNamestring-Ingress 클래스 이름
ingressLoadBalancerIpsList-Ingress 로드밸런서 IP

Fields

FieldTypeUnitDescription
hostList-Ingress 리소스가 수신하는 호스트 이름
(*인 경우 모든 호스트에 대해 적용됨)
pathList-특정 호스트 하위에서 요청 경로
backendServiceNameList-백엔드로 전달되는 서비스의 이름
backendServicePortList-백엔드로 전달되는 포트 번호
backendServiceUidList-백엔드로 전달되는 서비스의 uid
pathTypeList-경로 일치 방식 (예, Prefix, Exact)

쿠버네티스 크론잡(kube_cronjob) 메트릭

디플로이먼트 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
cronJobNamestring-CronJob의 이름 (metadata.name)
namespacestring-CronJob이 속한 네임스페이스 (metadata.namespace)
cronJobUidstring-CronJob의 UID (metadata.uid)

Fields

FieldTypeUnitDescription
lastScheduleTimestring-CronJob이 마지막으로 스케줄된 시간 (status.lastScheduleTime)
lastSuccessfulTimestring-CronJob이 마지막으로 성공한 시간 (status.lastSuccessfulTime)
cronJobSpecSchedulestring-CronJob의 스케줄 주기 (spec.schedule, 예: "0 */5 * * *" )
successfulJobsHistoryLimitintegercount성공한 Job을 보존하는 최대 개수 (spec.successfulJobsHistoryLimit)
failedJobsHistoryLimitintegercount실패한 Job을 보존하는 최대 개수 (spec.failedJobsHistoryLimit)
concurrencyPolicystring-동시 실행 정책 (Allow, Forbid, Replace) (spec.concurrencyPolicy)
startingDeadlineSecondsintegertime(seconds)스케줄된 시간이 지난 후에도 Job을 실행할 수 있는 최대 지연 시간 (spec.startingDeadlineSeconds)

쿠버네티스 디플로이먼트(kube_deployment) 메트릭

디플로이먼트 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
deployNamestring-디플로이먼트의 이름 (metadata.name)
namespacestring-디플로이먼트가 속한 네임스페이스 (metadata.namespace)
deployUidstring-디플로이먼트의 UID (metadata.uid)

Fields

FieldTypeUnitDescription
deployReadyReplicasintegercount준비(Ready) 상태인 파드 수 (status.readyReplicas)
deployTotalReplicasintegercount설정된 전체 파드 수 (spec.replicas)
deployUpdatedReplicasintegercount최신 버전으로 갱신된 파드 수 (status.updatedReplicas)
deployAvailableReplicasintegercount사용 가능한 상태의 파드 수 (status.availableReplicas)
deployUnavailableReplicasintegercount사용 불가능한 상태의 파드 수 (status.unavailableReplicas)
deployCreationTimeintegermilliseconds(ms)디플로이먼트 생성 시각 (Unix Epoch milliseconds, metadata.creationTimestamp)
deploySelectorstring-디플로이먼트의 선택자 라벨 (spec.selector.matchLabels)
deployStrategystring-디플로이먼트의 배포 전략 (spec.strategy.type, 예: RollingUpdate, Recreate)

쿠버네티스 데몬셋(kube_daemonset) 메트릭

데몬셋 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
daemonSetNamestring-DaemonSet의 이름 (metadata.name)
namespacestring-DaemonSet이 소속된 네임스페이스 (metadata.namespace)
daemonSetUidstring-DaemonSet의 UID (metadata.uid)
creationTimeintegermilliseconds(ms)DaemonSet 생성 시각 (metadata.creationTimestamp)
agestring-DaemonSet 생성 이후 경과 시간

Fields

FieldTypeUnitDescription
currentNumberScheduledintegercount현재 스케줄된 파드 수 (status.currentNumberScheduled)
desiredNumberScheduledintegercount기대하는 파드 수 (status.desiredNumberScheduled)
numberReadyintegercountReady 상태인 파드 수 (status.numberReady)
numberAvailableintegercount사용 가능한 파드 수 (status.numberAvailable)
numberMisscheduledintegercount잘못 스케줄된 파드 수 (status.numberMisscheduled)
updatedNumberScheduledintegercount업데이트된 파드 수 (status.updatedNumberScheduled)
daemonSetSelectorstring-Selector 라벨 (spec.selector.matchLabels)

쿠버네티스 레플리카셋(kube_replicaset) 메트릭

레플리카셋(ReplicaSet) 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
replicaSetNamestring-ReplicaSet의 이름 (metadata.name)
namespacestring-ReplicaSet이 소속된 네임스페이스 (metadata.namespace)
replicaSetUidstring-ReplicaSet의 UID (metadata.uid)
ownerKindstring-상위 오브젝트 종류 (예: Deployment) (metadata.ownerReferences.kind)
ownerNamestring-상위 오브젝트 이름 (metadata.ownerReferences.name)
ownerUid string-상위 오브젝트 UID (metadata.ownerReferences.uid)
creationTimeintegermilliseconds(ms)ReplicaSet 생성 시각 (metadata.creationTimestamp)
agestring-ReplicaSet 생성 이후 경과 시간

Fields

FieldTypeUnitDescription
replicaSetReplicasintegercount설정된 파드 수 (spec.replicas)
replicaSetReadyReplicasintegercountReady 상태 파드 수 (status.readyReplicas)
replicaSetAvailableReplicasintegercount사용 가능한 파드 수 (status.availableReplicas)
replicaSetSelectorstring-Selector 라벨 (spec.selector.matchLabels)

쿠버네티스 스테이트풀셋(kube_statefulSet) 메트릭

스테이트풀셋(StatefulSet) 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
statefulSetNamestring-StatefulSet의 이름 (metadata.name)
namespacestring-StatefulSet이 소속된 네임스페이스 (metadata.namespace)
statefulSetUidstring-StatefulSet의 UID (metadata.uid)
creationTimeintegermilliseconds(ms)StatefulSet 생성 시각 (metadata.creationTimestamp)
agestring-StatefulSet 생성 이후 경과 시간

Fields

FieldTypeUnitDescription
replicasintegercount설정된 파드 수 (spec.replicas)
readyReplicasintegercountReady 상태 파드 수 (status.readyReplicas)
currentReplicasintegercount현재 생성된 파드 수 (status.currentReplicas)
updatedReplicasintegercount업데이트된 파드 수 (status.updatedReplicas)
statefulSetSelectorstring-Selector 라벨 (spec.selector.matchLabels)

쿠버네티스 잡(kube_job) 메트릭

디플로이먼트 리소스에 대한 메타데이터와 상태 정보를 태그로 수집합니다.

Tags

TagTypeUnitDescription
jobNamestring-Job의 이름 (metadata.name)
namespacestring-Job이 소속된 네임스페이스 (metadata.namespace)
jobUidstring-Job의 UID (metadata.uid)
ownerKindstring-상위 오브젝트의 종류 (예: CronJob)
ownerNamestring-상위 오브젝트의 이름
ownerUid string-상위 오브젝트의 UID

Fields

FieldTypeUnitDescription
succeededPodsintegercount성공한 파드 수 (status.succeeded)
failedPodsintegercount실패한 파드 수 (status.failed)
completionTimestring-Job이 완료된 시간 (status.completionTime.toString())
parallelismintegercount동시에 실행되도록 설정된 파드 수 (spec.parallelism)
completionsintegercountJob이 완료되기 위해 필요한 파드 실행 횟수 (spec.completions)
backoffLimitintegercount실패 시 재시도 가능한 최대 횟수 (spec.backoffLimit)
activeDeadlineSecondsintegerseconds(sec)Job이 실행될 수 있는 최대 시간 (spec.activeDeadlineSeconds)

쿠버네티스 NetworkPolicy(kube_network_policy) 메트릭

kube_network_policy 카테고리는 클러스터의 NetworkPolicy 오브젝트를 이벤트 기반으로 수집합니다. 주기 수집이 아니라 오브젝트가 추가, 변경, 삭제될 때마다 해당 시점의 스냅숏을 전송합니다.

  • 대상: 클러스터 프로젝트, 네임스페이스 프로젝트
  • 수집 방식: 이벤트 기반

Tags

TagTypeUnitDescription
networkPolicyUidstring-NetworkPolicy UID(고유값)
networkPolicyNamestring-NetworkPolicy 이름
namespacestring-NetworkPolicy가 소속된 네임스페이스
resourceVersionstring-오브젝트 리비전(metadata.resourceVersion)

Fields

FieldTypeUnitDescription
generationlong-오브젝트 세대(metadata.generation)
creationTimeMillislong-오브젝트 생성 시각(epoch ms)
policyTypeslist-정책 유형 목록
- Ingress, Egress. 빈 목록은 API 기본값인 Ingress
selectedPodUidslist-정책이 선택한 파드 UID 목록
podSelectormap-정책 대상 파드 셀렉터(matchLabels, matchExpressions)
ingressRuleslist-Ingress 규칙 목록
- 규칙별 from, ports 포함
egressRuleslist-Egress 규칙 목록
- 규칙별 to, ports 포함
specSchemaVersioninteger-spec 필드 스키마 버전
specHashlong-정규화한 spec의 해시값
- 내용 변경 여부 판별용

규칙은 중첩 구조로 전송해 쿠버네티스 API의 의미를 그대로 보존합니다.

  • 한 peer 안의 namespaceSelectorpodSelector는 AND 관계입니다.
  • peer 목록과 규칙 목록은 OR 관계입니다.
  • 규칙 안의 빈 from, to는 모든 peer를, 빈 ports는 모든 포트를 의미합니다.
  • peer의 ipBlockcidrexcept를 담습니다.
  • 포트는 protocol, portType, portNumber 또는 portName, endPort를 담습니다.

ClusterRole에 networkpolicies 조회 권한이 필요합니다. collect_network_policy_enabled 옵션으로 수집을 끌 수 있습니다.