Kubernetes Agent Release Notes
2026-10-26
v1.9.32
Java Agent v2.2.68 포함Feature 노드별 대상 프로세스 개수 수집
- 노드별 대상 프로세스 개수를
kube_process_count의count필드로 수집 - 대상 프로세스가 종료되어도
count=0을 계속 전송하므로 메트릭스 이벤트로 프로세스 중단 감지 가능 - 수집 대상은 node helper의
collect_kube_node_process_metric_target_list로 지정하며,/proc/PID/status의Name과 정확히 일치해야 함. Linux가 제공하는 최대 15바이트 이름 사용(예:kube-controller) collect_kube_node_process_metric_enabled와 기존 수집·전송 주기 설정을 따르며, 기본 주기는 5초- 수집 실패와 오래된 데이터는 0으로 대신 전송하지 않음
- 기존
kube_process데이터 형식은 변경하지 않음 - node helper를 포함한 node agent와 master agent 이미지를 함께 1.9.32로 업데이트해야 하며, 별도 Operator 업그레이드나 RBAC 변경은 불필요
1.9.32 node agent와 구버전 node helper를 함께 사용하면 프로세스 개수 메트릭스를 수집하지 않습니다.
Changed APM 컨테이너에 컨테이너 ID 기록 실패 시 node helper가 재시도
- 기존에는 컨테이너가 Running 상태가 된 직후 한 번만 컨테이너 ID(
container.conf) 기록을 실행 - 애플리케이션 기동이 늦어 에이전트 파일(예: Python의
/whatap-agent/whatap_python)이 아직 없거나 일시적인 실행 오류가 나면, 같은 Deployment에서도 해당 파드만 컨테이너 연계 정보가 빠지던 문제 개선 - 실패하면 10초부터 간격을 두 배씩 늘려(최대 5분) 최대 6회까지 재시도
- 각 실행은 30초 안에 끝나지 않으면 중단
- 업데이트로 node agent 파드가 다시 시작되면 이전 버전에서 연계가 빠진 파드에도
container.conf생성. 그래도 연계가 표시되지 않으면 해당 애플리케이션 파드 재시작 필요
2026-10-06
v1.9.31
Java Agent v2.2.68 포함Changed ConfigMap으로 지정한 WHATAP_JAVA_AGENT_PATH도 Java APM과 컨테이너 ID 연계
- 애플리케이션 컨테이너의
WHATAP_JAVA_AGENT_PATH를env[].valueFrom.configMapKeyRef로 지정한 경우에도 node helper가 Java APM과 컨테이너 ID를 연계 - 컨테이너가 시작할 때 해석된 환경변수를 사용하므로, 실행 이후 변경된 ConfigMap 값과 혼동하지 않음
value직접 지정과 경로 자동 탐지 등 기존 대체 경로는 그대로 유지- ConfigMap과 Secret 조회 권한은 추가하지 않음
- ConfigMap 값을 변경했다면 해당 애플리케이션 파드를 재생성해야 환경변수에 반영
- node helper를 포함한 node agent와 master agent 이미지를 함께 1.9.31로 업데이트해야 하며, 별도 Operator 업그레이드나 RBAC 변경은 불필요
지원 범위는 개별 env[].valueFrom.configMapKeyRef입니다. envFrom.configMapRef 일괄 가져오기와 그 밖의 valueFrom 형식은 포함하지 않으며, Java APM 자동 설치 기능과는 별개입니다.
2026-10-02
v1.9.30
Java Agent v2.2.68 포함Changed 파드의 컨테이너 집계를 실제 수집 대상과 같은 집합으로 맞춤
- 컨테이너 식별자, 이름, 개수, 상태를 실제 컨테이너 수집 대상과 동일한 집합으로 집계
- 일반 컨테이너와 Native Sidecar, 컨테이너가 없는 파드를 포함
Changed 수집 서버에 연결할 때 Yard 버전 확인 추가
- Yard 3.1.9 이상이 확인된 프로젝트에서만 새로운 파드 컨테이너 집계 형식 사용
- 구버전 Yard이거나 버전 조회를 지원하지 않거나 조회에 실패·시간 초과하면 기존 전송 형식 유지
- 재접속 시 대기 중인 데이터도 현재 연결의 서버 버전에 맞는 형식으로 전송
- 버전 조회는 node agent와 master agent 각각의 연결당 한 번 수행하며, 주기적으로 재시도하지 않음
- Yard 3.1.8 계열 이하에서는 버전 조회 요청을 지원하지 않아 Yard 로그에
[Y106]오류와 스택 트레이스가 남을 수 있음. 기존 데이터 수집에는 영향이 없으며 Yard 3.1.9 이상으로 업데이트하면 해소
[Y106]은 다른 예외에도 사용합니다. 모든 [Y106] 로그를 무시하지 말고, 함께 기록된 예외 내용이 버전 조회 미지원에 해당하는지 확인하세요.
Fixed 비정상 버전 응답 처리와 통신 장애 시 연결 복구의 안정성 개선
- 에이전트 파드 재시작·재배포, Proxy 재시작, 네트워크 단절 후 재접속으로 새 연결이 생기면 버전을 다시 조회
2026-09-30
v1.9.29
Java Agent v2.2.68 포함Feature Native Sidecar 컨테이너 수집 지원
spec.initContainers에 있는restartPolicy: Always컨테이너를 지속 실행 Native Sidecar로 인식해 컨테이너 목록과 CPU·메모리 수집 대상에 포함- node agent의 수집 캐시와 파드 집계, master agent의 컨테이너 메타데이터·통계에 같은 판별 기준 적용
- 재시작 횟수, 준비 상태, OOM 정보와 볼륨 마운트 메타데이터도 반영
- 리소스 request/limit 합계는 지속 실행 컨테이너의 선언값 기준
일반 init 컨테이너와 ephemeral 컨테이너는 기존과 같이 상시 수집에 포함하지 않습니다. 일반 init의 시작 순서를 고려한 scheduler-effective 리소스 계산이나 Envoy L7·APM 계측을 바꾸는 기능은 아닙니다.
Changed node agent 수집 주기의 설정 범위 확장
count_interval과collect_interval의 최소 설정값을 5000ms에서 1000ms로 확장하고, 기본값은 두 옵션 모두 5000ms로 유지- 1000~30000ms 범위에서 1000ms 단위로 설정하며, 두 옵션을 모두
2000으로 지정하면 2초, 모두1000으로 지정하면 1초 수집·전송 주기 요청
1초와 2초는 요청 주기입니다. 원천 읽기 지연과 비동기 처리 때문에 모든 지표가 매 주기 새 값으로 완료되는 것은 보장하지 않으며, 서버 저장과 화면 집계 해상도는 별도입니다. 주기를 줄이기 전에 노드·컨테이너 규모에 맞춰 CPU, throttling, 송신량을 확인하세요.
Changed node helper의 수집 부하 최적화
- cgroup v1 blkio 파일 읽기를 프로세스 안에서 직렬화해 컨테이너 간 커널 잠금 경합 완화
- cgroup 성능 수집에서
/proc/stat의 CPU 합계만 파싱하고 CPU별·인터럽트 행은 변환하지 않음 - containerd stats의 네트워크 중복 읽기와 추가 JSON 직렬화 제거
- 프로세스 수집에서 명확한 비대상을 먼저 제외하고, 읽기 실패나 모호한 이름은 기존 경로로 다시 확인
- 지표 읽기 횟수나 수집 범위를 줄이거나 이전 성능 값을 재사용하지는 않음
2026-09-29
v1.9.28
Java Agent v2.2.68 포함Changed 비대화형 환경에서 에이전트 로그의 ANSI 제어 문자 제거
- 콘솔이 없는 Kubernetes 컨테이너나 백그라운드 환경에서는 node agent와 master agent 로그에 ANSI 색상 제어 문자를 기본으로 넣지 않음
- 로그 본문뿐 아니라 스레드명과 호출자 접두부에도 공통 ANSI 설정을 적용해
ESC[32m,ESC[33m,ESC[0m같은 제어 문자가 원문으로 노출되지 않음 - 터미널 색상이 필요하면 JVM 옵션
-Dwhatap.ansi.enabled=true로 활성화하고,false를 지정하면 콘솔 유무와 관계없이 비활성화 - ANSI 기본값 변경 외에 설정·RBAC·볼륨 마운트 변경 없음
변경 범위는 Kube Agent 자체 로그입니다. 애플리케이션 컨테이너 stdout/stderr에 포함된 ANSI 코드의 표시·검색 처리까지 해결하지는 않습니다.
2026-09-15
v1.9.27
Java Agent v2.2.68 포함Feature 같은 파드의 네트워크 관측 데이터를 받는 로컬 수신 기능 추가
- TCP L4 구간 집계 데이터를 받는 전용 수신기를
127.0.0.1에 추가하고, 기존 micro listener와 포트를 공유하지 않음 - 설정 옵션:
network_edge_ingest_enabled(기본값: 비활성화),network_edge_ingest_port(1~65535),network_edge_ingest_node - 활성화할 때는 포트와 노드 이름을 함께 지정하며, 노드 이름은 송신 데이터의
observer_node와 일치해야 함 - 설정한 노드 이름을 바꾸려면 재시작 필요
network.edge.window/v1alpha1의 허용 필드와 크기·시간·값 범위를 검증해kube_network_edge_v1alpha1카테고리로 전송- 프로젝트·에이전트·노드 식별값은 송신값 대신 node agent의 현재 접속 정보 사용
- ACK 성공은 node agent의 기본 또는 오프라인 큐가 레코드를 수락했다는 뜻이며, 백엔드 저장 완료를 보장하지 않음
이 기능은 기본 비활성이며 자동으로 활성화되거나 RBAC가 변경되지 않습니다. loopback 바인딩은 별도 인증을 대신하지 않으므로, 신뢰할 수 있는 동일 파드 컨테이너만 이 포트에 접근하도록 구성하세요.
Changed 에이전트 이미지의 Alpine 런타임 보안 업데이트
kube_agent와kube_mon의 최종 Alpine 런타임 베이스를 3.22에서 3.24로 업데이트- 이미지를 빌드할 때 기반 이미지에 포함된 패키지의 보안 패치도 함께 적용
2026-08-13
v1.9.26
Java Agent v2.2.68 포함Changed NetworkPolicy spec을 typed 중첩 구조로 전송
kube_network_policy에서specJson필드를 제거하고podSelector,ingressRules,egressRules를MapValue/ListValue구조로 제공- 한 peer 안의
namespaceSelector와podSelector의 AND 관계, peer 목록과 rule 목록의 OR 관계,ipBlock, named/numeric port, protocol,endPort를 중첩 구조 그대로 보존 - rule 안의 빈
from/to와ports는 Kubernetes API와 같이 각각 모든 peer와 모든 port를 의미 specSchemaVersion과 정규화된specHash를 추가해 JSON을 파싱하지 않고도 스키마 버전과 내용 변경 여부 확인 가능policyTypes,selectedPodUids와 UID·네임스페이스·resourceVersion등 기존 식별 필드는 유지
specJson은 1.9.25 개발 이미지에서만 제공한 필드이며, 1.9.26에서 제거하는 의도된 breaking change입니다. specJson을 읽고 있다면 typed 필드로 바꿔야 합니다.
2026-08-06
v1.9.24
Java Agent v2.2.68 포함Feature HPA 목록 정보를 수집하는 kube_hpa 카테고리 추가
- 30초 주기로 HPA 이름, 네임스페이스, 생성 시각, 스케일 대상 정보 수집
- 최소·최대·현재·목표 복제본 수와 확장 가능·활성·제한 상태 전송
- CPU·메모리뿐 아니라 Pods, External, Object 메트릭의 종류·목표값·현재값을 병렬 리스트로 수집하며, 같은 인덱스의 항목이 하나의 메트릭을 나타냄
autoscaling/v2API를 우선 사용하고, 지원하지 않는 클러스터에서는autoscaling/v1API로 폴백- 기존
horizontalpodautoscalers권한을 사용하므로 추가 RBAC 변경 불필요
메트릭 값은 단일 숫자가 아니라 50%, 100m 같은 문자열로 전달됩니다. metrics-server 등 원천 메트릭을 사용할 수 없는 환경에서는 현재값이 <unknown>일 수 있습니다.
Changed kube_hpa_stat에 스케일 대상과 생성 시각 태그 추가
- 기존 필드는 그대로 유지
2026-07-31
v1.9.23
Java Agent v2.2.68 포함Feature emptyDir 볼륨의 종류·저장 매체·용량 제한 수집
volumeType,emptyDirMedium(Memory또는Disk),emptyDirSpecConfirmed태그 추가emptyDirSpecConfirmed로 파드 spec에서 확인한 값인지 파일시스템 정보로 추정한 값인지 구분emptyDir.sizeLimit이 설정되어 있으면sizeLimit과 이를 기준으로 계산한capacity,available,usedPercent전송- 제한이 없는 Memory medium은 tmpfs 총량을 용량으로 사용
- 기존 파드 캐시에서 spec을 읽으므로 Kubernetes API 호출이 늘지 않음
sizeLimit이 없는 Disk medium은 노드 루트 파일시스템 전체를 볼륨 용량으로 표시하지 않습니다. 이때 사용량은 파드의 container.ephemeral_storage_limit과 함께 판단하세요.
Changed 디스크·메모리 기반 emptyDir의 수집 경로 통합
- medium과 상관없이 같은 태그와 필드를 적용하고 중복 수집 방지
- 추가 RBAC 권한이나 볼륨 마운트 불필요
collect_pod_emptydir_enabled=false로 끄면 기존 df 기반 수집 경로 사용
Fixed 컨트롤플레인 메트릭이 없는 환경에서 master agent의 수집 주기가 중단되던 현상 수정
- kube-apiserver·etcd 메트릭이 없을 때 빈 응답이
null로 전달되어 컨트롤플레인 수집이 멈추던 문제 해소
Changed 레거시 Java OpenMetrics 모듈을 이미지 패키징에서 제거
- 더 이상 실행하지 않는 모듈이며, OpenMetrics 수집은 별도
whatap/openagent이미지 사용
Changed node helper에 pprof 진단 기능 추가 및 컬렉션 초기화 안정성 수정
debug_pprof_enabled(기본값: 비활성화)를true로 설정하면/debug/pprof/하위 프로파일 제공
pprof는 진단할 때만 활성화하고, 진단이 끝나면 다시 비활성화하세요.
v1.9.22
Java Agent v2.2.68 포함Feature emptyDir 볼륨 사용량 수집
- 디스크 기반 emptyDir 볼륨의 디렉터리를 확인해
kube_pod_volume에usedSpace(바이트)와fileCount전송 volumePlugin,volumeName,hostMountPath태그로 볼륨 구분- 디렉터리 탐색 부하를 제한하기 위해 60초 수집 주기 적용
- 설정 옵션:
collect_pod_emptydir_enabled(기본값: 활성화),pod_emptydir_max_files(기본값: 20,000개),pod_emptydir_max_volumes(기본값: 300개) - 수집 상한에 도달한 볼륨은
truncated=1로 표시하며, 이때 사용량은 실제보다 작게 수집 - 기존
/rootfs읽기 전용 마운트를 사용하므로 추가 RBAC 권한이나 볼륨 마운트 불필요 - 파드의 namespace와 podName을 확인할 수 없는 볼륨은 전송하지 않음
이 버전은 emptyDir의 capacity와 usedPercent를 수집하지 않습니다. 디스크 기반 볼륨의 사용량은 파드의 ephemeral-storage 제한과 함께 판단하세요.
v1.9.21
Java Agent v2.2.68 포함Feature 노드의 베어메탈·가상 머신 구분 정보 수집
kube_node_perf에virtualization(baremetal,vm,unknown)과hypervisor태그 추가- 베어메탈이거나 하이퍼바이저를 확인하지 못하면
hypervisor를-로 전송 - DMI 벤더 정보를 우선 사용하고, 벤더를 판별하지 못하면
/proc/cpuinfo의 hypervisor 플래그로 가상 머신 여부 확인 - QEMU/KVM, VMware, Hyper-V 등 주요 가상화 환경 판별
EC2 .metal 등 일부 클라우드 베어메탈 인스턴스는 DMI 정보만으로 일반 인스턴스와 구분되지 않아 vm으로 분류될 수 있습니다.
2026-07-30
v1.9.20
Java Agent v2.2.68 포함Fixed node helper의 mountinfo 반복 조회로 load average가 상승하던 현상 수정
- 컨테이너 통계를 수집할 때
cgroup_version이 설정되어 있으면 이미 확인한 cgroup 모드를 재사용하고,/proc/1/mountinfo를 다시 읽지 않음 - cgroup 모드가 아직 설정되지 않은 최초 탐지 시에만 기존 mountinfo 탐지 경로 사용
- 마운트 생성·삭제가 잦은 환경에서 mountinfo 읽기가 지연되면 helper 스레드의 D-state가 쌓여 load average가 오르던 문제 해소
2026-07-28
v1.9.19
Java Agent v2.2.68 포함Changed Netty 의존성 보안 업데이트
- Kubernetes Java 에이전트 모듈의 Netty 의존성을 4.1.133.Final에서 4.1.135.Final로 업데이트
- Netty handler, transport-sctp, codec-haproxy, codec-redis, resolver-dns 관련 보안 취약점 대응 포함
- Java 의존성 버전만 변경했으며 수집 기능과 설정의 동작 변경 없음
- Go 기반 구성 요소는 1.9.18의 Go 1.25.11 빌드 유지
이번 업데이트 범위는 Kubernetes Java 에이전트의 Netty 의존성입니다. 이미지에 포함된 모든 구성 요소의 모든 취약점이 해소되었다는 의미는 아닙니다.
v1.9.18
Java Agent v2.2.68 포함Feature 노드 conntrack 테이블 사용 현황 수집
kube_node_perf에conntrack_count(현재 엔트리 수),conntrack_max(상한),conntrack_pct(사용률, %) 필드 추가nf_conntrack모듈이 없는 노드는 해당 필드를 전송하지 않아 사용량 0과 미수집을 구분- 설정 옵션:
collect_conntrack_enabled(기본값: 활성화) - conntrack 수집에는 추가 RBAC 권한이 필요하지 않습니다. 수집하지 않으려면
collect_conntrack_enabled=false로 설정하세요.
Changed Go 기반 구성 요소 보안 업데이트
- node-helper, control-plane helper, debugger의 빌드 툴체인을 Go 1.25.11로 업데이트
- 관련 의존성 업데이트: containerd v1.7.33, Docker v28.5.2,
golang.org/x/netv0.56.0, spdystream v0.5.1, SELinux v1.15.1, gRPC v1.82.0
2026-07-27
v1.9.17
Java Agent v2.2.68 포함Feature 수집 서버 연결 단절 시 데이터 유실 방지용 메모리 버퍼 추가
- 전송 큐가 가득 찬 상태로 수집 서버 와 연결이 끊기면 데이터를 메모리 버퍼에 최대 15분간 보관하고, 재연결 시 오래된 데이터부터 재전송
- 설정 옵션:
net_send_buffer_enabled,net_send_buffer_minutes,net_send_buffer_max_mb(기본값: 활성화 / 15분 / 64MB) - 버퍼를 거쳐 정상 재전송된 팩은
pack_dropped에 포함하지 않고, 시간·용량 상한 초과로 실제 폐기된 팩만 유실로 집계 - 단절 버퍼는 기본적으로 활성화되며 에이전트 프로세스당 최대 64MB의 메모리를 사용합니다. 메모리 제약 환경에서는
net_send_buffer_max_mb값을 낮추거나net_send_buffer_enabled=false로 비활성화할 수 있습니다.
Feature Kubernetes ResourceQuota 수집 지원
status.hard/status.used값을 네임스페이스별kube_stat필드로 수집 (CPU: millicore, Memory: byte)- ResourceQuota를 수집하려면 서비스 계정 ClusterRole에 core API
resourcequotas의list권한을 추가해야 합니다. - 권한이 없으면 ResourceQuota 수집만 생략되고 다른 통계는 계속 수집
2026-07-16
v1.9.16
Java Agent v2.2.68 포함Feature kube_node_perf에 cgroup_version 태그 추가
unified(v2) /hybrid/legacy(v1) /unknown값으로 구분 제공 (신규 JSON 필드 없이 태그로만 제공)
Fixed cgroup v2 환경에서 CPU 스로틀 시간이 실제보다 작게 수집되던 현상 수정
cpu.stat의throttled_usec(μs) 값을 ns로 변환하지 않아 v1 대비 약 1000배 작게 수집되던 문제 정정- 이번 릴리스 적용 후 cgroup v2 노드에서
cpu_throttledtime값이 이전 대비 큰 폭(약 1000배)으로 커진 것처럼 보일 수 있습니다. 이는 기존에 1000배 작게 수집되던 값이 정상 수치로 정정된 것이며, 실제 스로틀 발생량이 증가한 것은 아닙니다.
Fixed cgroup v2 환경에서 메모리 Max Usage 지표가 수집되지 않던 현상 수정
memory.peak에서 Max Usage 값을 수집하도록 변경
Fixed cgroup v2 환경에서 blkio(디스크 I/O) 지표가 전혀 수집되지 않던 현상 수정
io.stat파서 교체- 이번 릴리스부터 cgroup v2 노드에서 blkio 지표가 새롭게 수집되기 시작합니다. 기존에는 전혀 수집되지 않던 값이 정상적으로 유입되는 것이니 참고 부탁드립니다.
2026-07-06
v1.9.15
Java Agent v2.2.68 포함Feature kube_pod_volume PVC 볼륨 사용량 및 i-node 수집 지원
- podUid 폴백 조인으로 파드-볼륨 매핑 안정성 개선
volumeName/volumePlugin태그 추가
Changed mountinfo 영구 캐시 기본값 false로 전환
- 기존에
use_cached_mount_info_enabled=false로 직접 설정해 두신 환경은 이번 릴리스부터 해당 값이 기본값이므로 설정을 제거하셔도 됩니다.
Fixed kube_stat 네임스페이스 팩 미수집 현상 수정
- pcode 미설정 및 namespace 태그 누락으로 인해 데이터가 수집되지 않던 문제 수정
Fixed node-helper 캐시 누적으로 인한 메모리 증가 현상 수정
podsMap/containerPidLookup/processedContainers캐시에 eviction 로직 추가
2026-06-29
v1.9.14
Java Agent v2.2.68 포함Changed GPU 스칼라 필드 제거 (디바이스 타입별 리스트로 일원화)
kube_node의capacity_gpu/allocatable_gpu,kube_pod의gpu_request/gpu_limit,kube_pending_pod의gpu_request_count제거*_types/*_counts리스트 필드로 통합- Breaking: v1.9.13 스칼라 필드를 참조하던 쿼리는
*_counts리스트 합산 방식으로 전환 필요
2026-06-19
v1.9.13
Java Agent v2.2.68 포함Feature GPU 디바이스 타입별 수집 지원
nvidia.com/gpu및 MIG 프로파일(nvidia.com/mig-*) 리소스를 타입별로 분리 수집kube_node,kube_pod,kube_pending_pod카테고리에 GPU 관련 필드 추가
2026-06-09
v1.9.12
Java Agent v2.2.68 포함Changed 외부 의존성 라이브러리 보안 패치
- Java:
io.netty4.1.124/4.1.115 → 4.1.133.Final (HTTP/2 Rapid Reset 계열 취약점 대응),jose4j0.9.4 → 0.9.6 - kube-build (node-helper 빌드 베이스 이미지): Alpine 3.21 → 3.22,
jq1.7.x → 1.8.1 (CVE-2024-23337 해소) - 코드 동작·설정·API 변경 없음
2026-05-07
v1.9.11
Java Agent v2.2.68 포함Feature container_log_path 옵션 추가
- Huawei Cloud CCE 환경에서 컨테이너 로그 디렉터리가
/var/log/pods가 아닌 별도 경로(soft link 대상)에 위치하는 케이스 지원 - 호스트 절대경로 symlink가 컨테이너의
/rootfsprefix와 어긋나 깨지는 문제 우회 —ci.logPath의/var/log/pods부분을 설정값으로 직접 치환 - 권장값(CCE Shared):
container_log_path=/mnt/paas/runtime/container_logs - 권장값(CCE Specific / Colocation):
container_log_path=/var/lib/containerd/container_logs
2026-05-06
v1.9.10
Java Agent v2.2.68 포함Feature kubelet_root_dir 옵션 추가
- Huawei Cloud CCE처럼 kubelet이 커스텀 루트 디렉터리를 사용하는 환경에서 컨테이너 로그 수집 지원
/var/log/pods경로 부재 시 심볼릭 링크를 따라가는 fallback 로그 경로 해석 기능 추가
2026-05-04
v1.9.9
Java Agent v2.2.68 포함Changed 안정성 개선 빌드 업데이트
2026-04-20
v1.9.8
Java Agent v2.2.68 포함Feature Pod stat 수집 제어 옵션 추가
collect_pod_stat_enabled,collect_pod_stat_cluster_enabled옵션으로 Pod stat 수집 활성화 여부 제어- 기본값:
true
2026-03-26
v1.9.7
Java Agent v2.2.68 포함Fixed Pending 상태 수집 안정성 및 데이터 정확도 개선
- 파드는 Running이지만 컨테이너가 Waiting 상태(
ImagePullBackOff등)일 때 수집 누락 문제 수정 - 파드 Phase뿐만 아니라 개별 컨테이너의 Waiting 상태까지 감지하도록 수집 범위 확대
- 여러 Pending 파드 존재 시 컨테이너 정 보가 이전 파드 정보와 중복/누적되어 전송되는 버그 수정
- 데이터 전송 시 컨테이너 목록 초기화 로직 수정으로 파드별 정확한 정보 전송
v1.9.6
Java Agent v2.2.68 포함Fixed 로그 수집 파일 키 조회 시 NPE 수정
- 로그 수집 과정에서
getFileKey()호출 시 NullPointerException 발생 버그 수정 - 파일 객체가 null이거나 파일 키 생성에 필요한 속성이 초기화되지 않은 경우 null 체크 추가
- 해당 에러로 인한 로그 수집 중단 현상 해소
2026-03-12
v1.9.5
Java Agent v2.2.68 포함Changed 컨테이너 생성 시간 기준 변경
- 기존에는 컨테이너의 생성 시간(created)을 Pod의 생성 시간(podCreated)으로 사용
- 변경 후 컨테이너 자체의 startedAt 시간을 사용하도록 수정
- Running 상태의 컨테이너는 running.startedAt, Terminated 상태의 컨테이너는 terminated.startedAt 시간 사용
- Pod 내에서 컨테이너가 재시작된 경우도 정확한 컨테이너 시작 시간 표시
2026-02-25
v1.9.4
Java Agent v2.2.68 포함Feature SM_BASE_2 팩 타입 추가
- 서버 모니터링 데이터 전송을 위한 새로운 SM_BASE_2 팩 타입이 추가됨. writev3/readv3 메서드를 통해 확장된 직렬화 지원
Changed 디버그 로깅 추가
- NodeCpuMemInfo에서 SMBasePack의 수집 데이터(CPU, Memory, Extra)를 디버그 모드에서 확인할 수 있도록 로깅 추가됨
Fixed 메모리/CPU 지표 NaN/Infinite 값 방어 처리
- 노드의 메모리 사용률(pused), 가용률(pavailable), 스왑 사용률(swappused) 계산 시 NaN 또는 Infinite 값이 발생할 수 있는 경우 방어 처리
- CPU 지표(user, nice, system, idle, iowait, irq, softirq, steal, load1, load5, load15) 계산 시 NaN/Infinite 값이 발생하면 0으로 처리하도록 수정
- 0으로 나누기(division by zero) 상황에서 비정상 지표가 수집되는 현상 수정
Fixed SReclaimable 파싱 대소문자 버그 수정
- /proc/meminfo에서 SReclaimable 항목을 파싱할 때 대소문자 비교 불일치로 값을 읽지 못하는 버그를 수정했습니다.
2026-02-04
v1.9.1
Java Agent v2.2.68 포함Fixed CVE-2025-15467 (Critical, CVSS 9.8) 조치 완료
- OpenSSL 라이브러리에서 발생하는 스택 버퍼 오버플로우(Stack Buffer Overflow) 취약점으로 인해 원격 코드 실행(RCE)이 가능했던 문제 차단
- 조치 내용: 컨테이너 OS 베이스 이미지를 최신 버전으로 교체, 시스템 패키지를 강제 업그레이드하여 OpenSSL 3.3.6 이상 버전 적용
2026-01-14
v1.9.0
Java Agent v2.2.68 포함New Kubernetes 라벨 수집 정책 개선
- 라벨 식별성 강화(Prefix 지원)
- Kubernetes 라벨과 에이전트 내부 태그(System Tag)를 명확히 구분
- 사용자 정의 Kubernetes 라벨에 접두사(Prefix)를 붙여 저장할 수 있는 옵션 추가
- 수집 필터링 도입(Label Filtering)
- 무분별한 라벨 수집을 방지하기 위해 허용 목록(Allowlist) 또는 제외 목록(Blocklist) 기반의 필터링 도입
2025-11-07
v1.8.9
Java Agent v2.2.61 포함Fixed CPU 통계 개선
- CPU 통계 음수 값 방지: 카운터 리셋이나 경쟁 조건으로 인해 CPU 메트릭이 음수 값을 표시할 수 있는 문제 수정
- 여러 CPU 메트릭에 적용:
user,sys,nice,irq,softirq,steal,guest,guest_nice - 계산된 값이 음수면 0을 반환하여 모든 CPU 통계가 음수가 되지 않도록 보장
Fixed Ingress 백엔드 서비스 포트 처리
- 백엔드 서비스 포트 처리 개선: Ingress 구성 처리 시 엣지 케이스 수정
- 백엔드 서비스에 대해 숫자 포트와 이름 포트를 모두 올바르게 처리
2025-09-04
v1.8.8
Java Agent v2.2.61 포함New k8s 환경 APM 설치 시 컨테이너 맵 애플리케이션 정보 표시 개선
컨테이너 맵에 애플리케이션 정보가 표시되지 않는 경우, APM이 설치된 컨테이너 매니페스트(YAML)의 환경변수에 해당 컨테이너 내 에이전트 절대 경로를 나타내는 옵션을 추가합니다. 언어별 옵션은 다음과 같습니다.
- Java
WHATAP_JAVA_AGENT_PATH
JAVA APM을 사용하지만, 컨테이너 내부에서 java 명령어를 수행할 수 없는 최소 이미지를 사용하는 경우가 있습니다. 이러한 경우 WHATAP_EXECUTABLE_JAVA_PATH 키로 컨테이너 환경변수에 java full path를 등록해줍니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-java-app
spec:
replicas: 1
selector:
matchLabels:
app: my-java-app
template:
metadata:
labels:
app: my-java-app
spec:
containers:
- name: my-java-container
image: your-java-app-image:latest
env:
# Java APM Jar 경로
- name: WHATAP_JAVA_AGENT_PATH
value: /whatap/whatap.agent-2.2.35.jar
# 최소 이미지에서 java 실행 파일의 전체 경로 지정
- name: WHATAP_EXECUTABLE_JAVA_PATH
value: /layers/paketo-buildpacks_adoptium/jre/bin/java- Python
WHATAP_PYTHON_AGENT_PATH - PHP
WHATAP_PHP_AGENT_PATH - Go
WHATAP_GO_AGENT_PATH - Node.js
WHATAP_NODEJS_AGENT_PATH
2025-05-08
v1.8.7
Java Agent v2.2.61 포함New kube_pod 태그카운트 카테고리에 파드 상태 및 소유 정보 확인을 위한 태그카운트 항목 추가
-
kube_display_status: 파드의 표시 상태(Display Status)
New 기존 kube_pod 외에 워크로드 리소스에 대한 태그카운트 추가로 태그카운트 리소스 범위 확장
New container_gpu MIG 환경 지원하도록 필드 추가
-
kube_replicaset -
kube_statefulset -
kube_daemonset
Fixed server_disk 데이터가 누락되던 버그 해결
2025-03-28
v1.8.6
Java Agent v2.2.55 포함New containerStdOut 로그에 podUid 태그 추가
New kube_oom_event 태그 카운트에 containerid 태그 추가
New MIG 환경에서 container_gpu 카테고리에 GPU_I_PROFILE, GPU_I_ID, DCGM_FI_DRIVER_VERSION 메트릭스 추가
Fixed GPU Compute Instance가 여러 개인 경우, 사용 중인 GPU와 사용되지 않는 GPU가 혼재된 환경에서 container_gpu 태그 카운트가 수집되지 않는 현상 수정
Fixed GPU 데이터 수집 시 수집 시간이 5초 단위로 정렬되지 않는 현상 수정
2025-02-17
v1.8.5
Java Agent v2.2.52 포함New 추가 기능을 통해 쿠버네티스 커스텀 리소스 관련 메트릭 수집 지원
-
기본 기능이 아닌 추가 기능 적용을 통해 whatap-master-agent의 컨테이너에
collect_custom_resources옵션 추가collect_custom_resources bool
기본값
falsetrue설정 시 메트릭스 조회 메뉴에서kube_cr및kube_crd카테고리 확인이 가능합니다. 수집된 데이터는 오브젝트 매니페스트 및 태그 카운트에서 확인할 수 있습니다.노트-
kube_crd: CustomResourceDefinition(CRD) 메트릭 수집 -
kube_cr: CRD로 정의된 Custom Resource(CR) 메트릭 수집
-
New container_gpu 카테고리에 DCGM_FI_DEV_POWER_USAGE 데이터 추가하여 GPU 모니터링 개선
New 로그에 #whatapSysLog 카테고리 추가하여 노드 에이전트 컨테이너 실행 시 사용자 환경 런타임 정보 전달
Fixed kube_pod_volume 관련 버그 수정
-
클러스터 프로젝트, 네임스페이스 구분 없이 전체 데이터가 수집되는 버그 수정
-
동기화 문제로 인해 일부 데이터가 누락되는 현상 수정
Fixed 컨테이너 이미지 이름이 정확하게 파싱되지 않는 현상 수정
2025-02-11
v1.8.4
Java Agent v2.2.50 포함Fixed cgroupV2에서 CPU 사용량 지표 오차가 발생하는 현상 수정
2025-01-08
v1.8.2
Java Agent v2.2.48 포함Fixed kube_ingress 목록이 나오지 않는 현상 수정
2024-12-24
v1.8.1
Java Agent v2.2.47 포함New 새로운 태그 카운트 메트릭 추가
-
kube_scheduler
샘플링 주기
1분Kubernetes 컨트롤 플레인 구성 요소인 스케줄러 관련 메트릭을 수집합니다.
-
kube_pv
샘플링 주기
30초Kubernetes 스토리지 Persistent Volume(PV) 관련 메트릭을 수집합니다.
-
kube_pvc
샘플링 주기
30초Kubernetes 스토리지 Persistent Volume Claim(PVC) 관련 메트릭을 수집합니다.
-
kube_pod_volume_list{h1}
샘플링 주기
1시간Kubernetes 파드의 볼륨 마운트 정보를 수집합니다.
-
kube_container_volume_list{h1}
샘플링 주기
1시간Kubernetes 컨테이너의 볼륨 정보를 수집합니다.
2024-12-02
v1.8.0
Java Agent v2.2.42 포함Changed 유지보수 및 확장성을 고려하여 에이전트 코드 구조 개선
2024-11-22
v1.7.16
Java Agent v2.2.41 포함New etcd 모니터링을 위한 데이터 수집 활성화 및 비활성화 기능 추가
-
etcd 리더 존재 여부 수집
-
etcd 리더 변경 추이 수집
-
etcd commit & apply 추이 수집
New Foreign Project 기능 활성화 및 비활성화 기능 추가
- Kubernetes 외부 프로젝트에서 활성화된 모니터링과의 연결 데이터 수집
2024-10-30
v1.7.15
Java Agent v2.2.39 포함New 관리 >