Kubernetes Agent Release Notes
2026-10-26
v1.9.32
Includes Java Agent v2.2.68Feature Added collection of target process counts per node
- Collects the number of target processes per node in the
countfield ofkube_process_count. - Keeps sending
count=0after a target process exits, so you can detect a stopped process with a metrics event. - Specify the targets with
collect_kube_node_process_metric_target_listin node helper. Each target must exactly matchNamein/proc/PID/status, which Linux limits to 15 bytes (for example,kube-controller). - Follows
collect_kube_node_process_metric_enabledand the existing collection and transmission interval settings. The default interval is 5 seconds. - Collection failures and stale data aren't sent as 0.
- The existing
kube_processdata format is unchanged. - Update the node agent and master agent images, including node helper, to 1.9.32 together. No separate operator upgrade or RBAC change is required.
If you use a 1.9.32 node agent with an older node helper, process count metrics aren't collected.
Changed node helper retries when it fails to write the container ID to an APM container
- Previously, node helper wrote the container ID (
container.conf) only once, right after the container entered the Running state. - Fixed an issue where only some pods in the same Deployment lost their container link when the application started slowly and the agent file (for example,
/whatap-agent/whatap_pythonfor Python) didn't exist yet, or a transient execution error occurred. - On failure, retries up to 6 times, starting at 10 seconds and doubling the interval each time (up to 5 minutes).
- Stops each execution that doesn't finish within 30 seconds.
- When the update restarts the node agent pods,
container.confis also created for pods that lost their link in earlier versions. If the link still doesn't appear, restart the application pod.
2026-10-06
v1.9.31
Includes Java Agent v2.2.68Changed Links Java APM with the container ID even when WHATAP_JAVA_AGENT_PATH is set through a ConfigMap
- node helper now links Java APM with the container ID even when the application container sets
WHATAP_JAVA_AGENT_PATHthroughenv[].valueFrom.configMapKeyRef. - Uses the environment variable as resolved when the container started, so it isn't confused with a ConfigMap value changed after startup.
- The existing fallbacks, such as setting
valuedirectly and automatic path detection, remain unchanged. - No ConfigMap or Secret read permissions are added.
- If you change the ConfigMap value, recreate the application pod for the environment variable to pick it up.
- Update the node agent and master agent images, including node helper, to 1.9.31 together. No separate operator upgrade or RBAC change is required.
The supported form is an individual env[].valueFrom.configMapKeyRef. Bulk imports through envFrom.configMapRef and other valueFrom forms aren't included, and this is separate from the Java APM auto-install feature.
2026-10-02
v1.9.30
Includes Java Agent v2.2.68Changed Aligned pod container aggregation with the actual collection targets
- Aggregates container identifiers, names, counts, and states over the same set as the actual container collection targets.
- Includes regular containers, native sidecars, and pods with no containers.
Changed Added a Yard version check when connecting to the collection server
- Uses the new pod container aggregation format only on projects confirmed to run Yard 3.1.9 or later.
- Keeps the existing transmission format on older Yard versions, and when the version query is unsupported, fails, or times out.
- On reconnection, pending data is also sent in the format that matches the server version of the current connection.
- The version query runs once per connection for each of the node agent and master agent, and isn't retried periodically.
- Yard 3.1.8 and earlier don't support the version query, so
[Y106]errors and stack traces may appear in the Yard log. Existing data collection isn't affected, and updating to Yard 3.1.9 or later resolves them.
[Y106] is also used for other exceptions. Don't ignore every [Y106] log. Check whether the exception recorded with it corresponds to the unsupported version query.
Fixed Improved the stability of abnormal version response handling and connection recovery after communication failures
- The version is queried again whenever a new connection is created, such as when the agent pod restarts or is redeployed, the proxy restarts, or the agent reconnects after a network outage.
2026-09-30
v1.9.29
Includes Java Agent v2.2.68Feature Added support for collecting native sidecar containers
- Recognizes a container in
spec.initContainerswithrestartPolicy: Alwaysas a long-running native sidecar and includes it in the container list and in CPU and memory collection. - Applies the same criteria to the node agent's collection cache and pod aggregation, and to the master agent's container metadata and statistics.
- Reflects restart counts, readiness, OOM information, and volume mount metadata.
- Resource request and limit totals are based on the declared values of long-running containers.
Regular init containers and ephemeral containers are still excluded from continuous collection. This isn't a change to scheduler-effective resource calculation that accounts for the startup order of regular init containers, or to Envoy L7 and APM instrumentation.
Changed Expanded the configurable range of the node agent collection interval
- Lowered the minimum value of
count_intervalandcollect_intervalfrom 5000 ms to 1000 ms. The default remains 5000 ms for both options. - Set both options in 1000 ms steps within the 1000–30000 ms range. Setting both to
2000requests a 2-second collection and transmission interval, and setting both to1000requests a 1-second interval.
1 second and 2 seconds are requested intervals. Because of source read latency and asynchronous processing, not every metric is guaranteed to complete with a new value on each interval, and the server storage and screen aggregation resolutions are separate. Before lowering the interval, check CPU, throttling, and transmission volume against the scale of your nodes and containers.
Changed Optimized the collection load of node helper
- Serializes cgroup v1 blkio file reads within the process to reduce kernel lock contention between containers.
- Parses only the CPU totals from
/proc/statduring cgroup performance collection, without converting the per-CPU and interrupt rows. - Removed duplicate network reads and extra JSON serialization from containerd stats.
- Excludes clear non-targets first during process collection, and falls back to the existing path when a read fails or a name is ambiguous.
- Doesn't reduce the number of metric reads or the collection scope, and doesn't reuse previous performance values.
2026-09-29
v1.9.28
Includes Java Agent v2.2.68Changed Removed ANSI control characters from agent logs in non-interactive environments
- In environments without a console, such as Kubernetes containers and background processes, the node agent and master agent no longer add ANSI color control characters to their logs by default.
- Applies the shared ANSI setting to the thread name and caller prefix as well as the log body, so control characters such as
ESC[32m,ESC[33m, andESC[0mare no longer exposed as raw text. - If you need terminal colors, enable them with the JVM option
-Dwhatap.ansi.enabled=true. Setting it tofalsedisables them regardless of whether a console is present. - Apart from the ANSI default, there are no configuration, RBAC, or volume mount changes.
This change applies to the Kube Agent's own logs. It doesn't address how ANSI codes in application container stdout and stderr are displayed or searched.
2026-09-15
v1.9.27
Includes Java Agent v2.2.68Feature Added local ingest for network observation data from the same pod
- Added a dedicated listener on
127.0.0.1that receives aggregated TCP L4 segment data. It doesn't share a port with the existing micro listener. - Configuration options:
network_edge_ingest_enabled(default: disabled),network_edge_ingest_port(1–65535), andnetwork_edge_ingest_node. - When enabling it, specify both the port and the node name. The node name must match the
observer_nodevalue in the sent data. - Changing the configured node name requires a restart.
- Validates the allowed fields of
network.edge.window/v1alpha1along with size, time, and value ranges, then sends the data to thekube_network_edge_v1alpha1category. - Uses the node agent's current connection information for the project, agent, and node identifiers instead of the values in the sent data.
- A successful ACK means the node agent's default or offline queue accepted the record; it doesn't guarantee that the backend stored it.
This feature is disabled by default, and this release neither enables it automatically nor changes RBAC. The loopback binding isn't a substitute for authentication, so configure your deployment so that only trusted containers in the same pod can reach this port.
Changed Security update for the Alpine runtime of the agent images
- Updated the final Alpine runtime base of
kube_agentandkube_monfrom 3.22 to 3.24. - Applies security patches to the packages included in the base image during the image build.
2026-08-13
v1.9.26
Includes Java Agent v2.2.68Changed Sends the NetworkPolicy spec as a typed nested structure
- Removed the
specJsonfield fromkube_network_policyand providespodSelector,ingressRules, andegressRulesasMapValue/ListValuestructures. - Preserves the nested structure as is: the AND relationship between
namespaceSelectorandpodSelectorwithin a peer, the OR relationship across peer and rule lists,ipBlock, named and numeric ports, protocol, andendPort. - An empty
from/toorportsin a rule means all peers and all ports respectively, the same as in the Kubernetes API. - Added
specSchemaVersionand a normalizedspecHashso consumers can check the schema version and whether the content changed without parsing JSON. - The existing identity fields remain unchanged, including
policyTypes,selectedPodUids, UID, namespace, andresourceVersion.
specJson was provided only in the 1.9.25 development image, and removing it in 1.9.26 is an intended breaking change. If you read specJson, switch to the typed fields.
2026-08-06
v1.9.24
Includes Java Agent v2.2.68Feature Added the kube_hpa category for collecting HPA list information
- Collects the HPA name, namespace, creation time, and scale target information every 30 seconds.
- Sends the minimum, maximum, current, and desired replica counts along with the able-to-scale, scaling-active, and scaling-limited conditions.
- Collects the type, target value, and current value of Pods, External, and Object metrics as well as CPU and memory, as parallel lists in which items at the same index represent one metric.
- Uses the
autoscaling/v2API first and falls back to theautoscaling/v1API on clusters that don't support it. - Uses the existing
horizontalpodautoscalerspermission, so no RBAC changes are required.
Metric values are delivered as strings such as 50% or 100m, not as single numbers. In environments where the source metrics are unavailable, such as when metrics-server isn't installed, the current value may be <unknown>.
Changed Added scale target and creation time tags to kube_hpa_stat
- The existing fields remain unchanged.
2026-07-31
v1.9.23
Includes Java Agent v2.2.68Feature Added collection of the type, storage medium, and size limit of emptyDir volumes
- Added the
volumeType,emptyDirMedium(MemoryorDisk), andemptyDirSpecConfirmedtags. emptyDirSpecConfirmeddistinguishes values confirmed from the pod spec from values inferred from filesystem information.- If
emptyDir.sizeLimitis set, sendssizeLimitalong with thecapacity,available, andusedPercentvalues calculated from it. - For a Memory medium with no limit, uses the total size of the tmpfs as the capacity.
- Reads the pod spec from the existing pod cache, so it doesn't add Kubernetes API calls.
For a Disk medium with no sizeLimit, the agent doesn't report the entire node root filesystem as the volume capacity. In that case, evaluate the usage together with the pod's container.ephemeral_storage_limit.
Changed Unified the collection path for disk-based and memory-based emptyDir volumes
- Applies the same tags and fields regardless of the medium and prevents duplicate collection.
- No additional RBAC permissions or volume mounts are required.
- Setting
collect_pod_emptydir_enabled=falsefalls back to the existing df-based collection path.
Fixed Fixed the master agent's control plane collection cycle stopping in environments without control plane metrics
- Resolved an issue where an empty response was passed as
nullwhen kube-apiserver and etcd metrics were unavailable, halting control plane collection.
Changed Removed the legacy Java OpenMetrics module from the image packaging
- The module is no longer executed. Use the separate
whatap/openagentimage for OpenMetrics collection.
Changed Added pprof diagnostics to node helper and fixed collection initialization stability
- Setting
debug_pprof_enabled(default: disabled) totrueexposes the profiles under/debug/pprof/.
Enable pprof only while diagnosing an issue, and disable it again once you're done.
v1.9.22
Includes Java Agent v2.2.68Feature Added collection of emptyDir volume usage
- Walks the directories of disk-based emptyDir volumes and sends
usedSpace(bytes) andfileCounttokube_pod_volume. - Distinguishes volumes by the
volumePlugin,volumeName, andhostMountPathtags. - Uses a separate 60-second collection interval to limit the overhead of directory walks.
- Configuration options:
collect_pod_emptydir_enabled(default: enabled),pod_emptydir_max_files(default: 20,000),pod_emptydir_max_volumes(default: 300). - Volumes that reach a collection limit are marked with
truncated=1, and their usage is collected lower than the actual value. - Uses the existing read-only
/rootfsmount, so no additional RBAC permissions or volume mounts are required. - Volumes whose pod namespace and podName can't be identified aren't sent.
This version doesn't collect capacity or usedPercent for emptyDir. Evaluate the usage of disk-based volumes together with the pod's ephemeral-storage limit.
v1.9.21
Includes Java Agent v2.2.68Feature Added collection of whether a node is bare metal or a virtual machine
- Added the
virtualization(baremetal,vm,unknown) andhypervisortags tokube_node_perf. - Sends
-forhypervisoron bare metal nodes or when the hypervisor can't be identified. - Uses DMI vendor information first; if the vendor can't be identified, checks the hypervisor flag in
/proc/cpuinfoto determine whether the node is a virtual machine. - Identifies major virtualization environments such as QEMU/KVM, VMware, and Hyper-V.
Some cloud bare-metal instances such as EC2 .metal can't be distinguished from regular instances by DMI information alone, so they may be classified as vm.
2026-07-30
v1.9.20
Includes Java Agent v2.2.68Fixed Fixed a rising load average caused by node helper repeatedly reading mountinfo
- When collecting container statistics, the agent now reuses the already detected cgroup mode if
cgroup_versionis set, instead of reading/proc/1/mountinfoagain. - The existing mountinfo detection path is used only for the initial detection, when the cgroup mode isn't set yet.
- This resolves an issue where delayed mountinfo reads in environments with frequent mount churn left helper threads accumulating in D-state, driving up the load average.
2026-07-28
v1.9.19
Includes Java Agent v2.2.68Changed Security update for the Netty dependency
- Updated the Netty dependency in the Kubernetes Java agent module from 4.1.133.Final to 4.1.135.Final.
- Addresses security vulnerabilities in Netty handler, transport-sctp, codec-haproxy, codec-redis, and resolver-dns.
- Only the Java dependency version changed; collection features and configuration behavior are unchanged.
- The Go-based components remain on the Go 1.25.11 build from 1.9.18.
This update covers the Netty dependency of the Kubernetes Java agent. It doesn't mean that every vulnerability in every component included in the image has been resolved.
v1.9.18
Includes Java Agent v2.2.68Feature Added collection of node conntrack table usage
- Adds the
conntrack_count(current entries),conntrack_max(limit), andconntrack_pct(usage, %) fields tokube_node_perf. - Nodes without the
nf_conntrackmodule don't send these fields, which distinguishes zero usage from no collection. - Configuration option:
collect_conntrack_enabled(default: enabled). - conntrack collection requires no additional RBAC permissions. To stop collecting it, set
collect_conntrack_enabled=false.
Changed Security update for Go-based components
- Updated the build toolchain for node-helper, the control-plane helper, and debugger to Go 1.25.11.
- Updated dependencies: 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
Includes Java Agent v2.2.68Feature Added a memory buffer to prevent data loss when the connection to the collection server is interrupted
- If the send queue is full when the connection to the collection server drops, data is held in a memory buffer for up to 15 minutes and retransmitted oldest-first upon reconnection.
- Configuration options:
net_send_buffer_enabled,net_send_buffer_minutes,net_send_buffer_max_mb(defaults: enabled / 15 minutes / 64MB). - Packs successfully retransmitted through the buffer aren't counted in
pack_dropped; only packs actually discarded due to the time or size limit are counted as lost. - The disconnect buffer is enabled by default and uses up to 64MB of memory per agent process. In memory-constrained environments, you can lower
net_send_buffer_max_mbor disable it withnet_send_buffer_enabled=false.
Feature Added support for collecting Kubernetes ResourceQuota
- Collects
status.hard/status.usedvalues as per-namespacekube_statfields (CPU in millicores, memory in bytes). - To collect ResourceQuota, add the
listpermission for the core APIresourcequotasto the service account's ClusterRole. - If the permission is missing, only ResourceQuota collection is skipped and other statistics continue to be collected.
2026-07-16
v1.9.16
Includes Java Agent v2.2.68Feature Added a cgroup_version tag to kube_node_perf
- Distinguishes
unified(v2) /hybrid/legacy(v1) /unknownvalues (provided as a tag only, with no new JSON field).
Fixed Fixed CPU throttle time being collected lower than the actual value in cgroup v2 environments
- Corrected an issue where
throttled_usec(μs) fromcpu.statwasn't converted to ns, causing values to be collected about 1000x lower than on v1. - After this release,
cpu_throttledtimevalues on cgroup v2 nodes may appear much higher (about 1000x) than before. This reflects a correction of a value that was previously undercounted by 1000x, not an actual increase in throttling.
Fixed Fixed memory Max Usage not being collected in cgroup v2 environments
- Changed to collect the Max Usage value from
memory.peak.
Fixed Fixed blkio (disk I/O) metrics not being collected at all in cgroup v2 environments
- Replaced the
io.statparser. - Starting with this release, blkio metrics will begin being collected on cgroup v2 nodes. Please note that values that were previously not collected at all will now start flowing in normally.
2026-07-06
v1.9.15
Includes Java Agent v2.2.68Feature Added PVC volume usage and inode collection for kube_pod_volume
- Improved pod-to-volume mapping stability with a podUid fallback join.
- Added
volumeName/volumePlugintags.
Changed Changed the mountinfo persistent cache default to false
- If you already set
use_cached_mount_info_enabled=falsemanually, you can remove that setting now that it's the default value.
Fixed Fixed kube_stat namespace packs not being collected
- Fixed an issue where data wasn't collected due to an unset pcode and a missing namespace tag.
Fixed Fixed increasing memory usage caused by node-helper cache accumulation
- Added eviction logic to the
podsMap/containerPidLookup/processedContainerscaches.
2026-06-29
v1.9.14
Includes Java Agent v2.2.68Changed Removed GPU scalar fields (consolidated into per-device-type lists)
- Removed
capacity_gpu/allocatable_gpufromkube_node,gpu_request/gpu_limitfromkube_pod, andgpu_request_countfromkube_pending_pod. - Consolidated into the
*_types/*_countslist fields. - Breaking: Queries referencing the v1.9.13 scalar fields must switch to summing the
*_countslists.
2026-06-19
v1.9.13
Includes Java Agent v2.2.68Feature GPU collection by device type
- Collects
nvidia.com/gpuand MIG profile (nvidia.com/mig-*) resources separately by device type. - Adds GPU-related fields to the
kube_node,kube_pod, andkube_pending_podcategories.
2026-06-09
v1.9.12
Includes Java Agent v2.2.68Changed Updated external dependency libraries as a security patch.
- Java:
io.netty4.1.124/4.1.115 → 4.1.133.Final (addresses HTTP/2 Rapid Reset vulnerabilities),jose4j0.9.4 → 0.9.6 - kube-build (node-helper build base image): Alpine 3.21 → 3.22,
jq1.7.x → 1.8.1 (CVE-2024-23337 resolved) - No changes to code behavior, configuration, or APIs.
2026-05-07
v1.9.11
Includes Java Agent v2.2.68Feature Added the container_log_path option
- Supports environments such as Huawei Cloud CCE where the container log directory is located on a separate path (soft link target) rather than
/var/log/pods. - Bypasses the issue where the host absolute path symlink does not align with the container's
/rootfsprefix by directly replacing the/var/log/podsportion ofci.logPathwith the configured value. - Recommended for CCE Shared mode:
container_log_path=/mnt/paas/runtime/container_logs - Recommended for CCE Specific / Colocation mode:
container_log_path=/var/lib/containerd/container_logs
2026-05-06
v1.9.10
Includes Java Agent v2.2.68Feature Added the kubelet_root_dir option
- Supports container log collection in environments such as Huawei Cloud CCE where kubelet uses a custom root directory.
- Added a fallback log path resolution that follows symbolic links when
/var/log/podsis absent.
2026-05-04
v1.9.9
Includes Java Agent v2.2.68Changed Build update for stability improvements.
2026-04-20
v1.9.8
Includes Java Agent v2.2.68Feature Added Pod stat collection control options
- Use
collect_pod_stat_enabledandcollect_pod_stat_cluster_enabledto toggle Pod stat collection. - Default:
true.
2026-03-26
v1.9.7
Includes Java Agent v2.2.68Fixed Improved Pending state collection stability and data accuracy
- Fixed an issue where data was not collected when a pod was Running but its container was in a Waiting state (e.g.,
ImagePullBackOff). - Extended the collection scope to detect not only the pod Phase but also individual container Waiting states.
- Fixed a bug where container information was duplicated with previous pod information when multiple Pending pods existed.
- Fixed the container list initialization logic during data transmission so that accurate information is sent per pod.
v1.9.6
Includes Java Agent v2.2.68Fixed Fixed NPE when retrieving log collection file key
- Fixed a NullPointerException bug when calling
getFileKey()during log collection - Added null checks for cases where the file object is null or required attributes for file key generation are not initialized
- Resolved the issue where log collection was interrupted due to this error
2026-03-12
v1.9.5
Includes Java Agent v2.2.68Changed Changed container creation time reference
- Previously, the container creation time (created) was used as the Pod creation time (podCreated)
- Updated to use the container's own startedAt time instead
- For Running containers, running.startedAt is used; for Terminated containers, terminated.startedAt is used
- Accurate container start time is now displayed even when a container has been restarted within a Pod
2026-02-25
v1.9.4
Includes Java Agent v2.2.68Feature Added SM_BASE_2 pack type
- New SM_BASE_2 pack type added for server monitoring data transmission. Provides extended serialization support via writev3/readv3 methods
Changed Added debug logging
- Added logging to verify collected data (CPU, Memory, Extra) from SMBasePack in NodeCpuMemInfo in debug mode
Fixed Defense handling for NaN/Infinite values in memory/CPU metrics
- Added defense handling for cases where NaN or Infinite values may occur when calculating node memory usage rate (pused), availability rate (pavailable), and swap usage rate (swappused)
- Modified to treat as 0 when NaN/Infinite values occur when calculating CPU metrics (user, nice, system, idle, iowait, irq, softirq, steal, load1, load5, load15)
- Fixed an issue where abnormal metrics were collected in division by zero situations
Fixed Fixed SReclaimable parsing case sensitivity bug
- Fixed a bug where values could not be read due to case mismatch when parsing SReclaimable entries in /proc/meminfo
2026-02-04
v1.9.1
Includes Java Agent v2.2.68Fixed CVE-2025-15467 (Critical, CVSS 9.8) mitigation completed
- Blocked a vulnerability in the OpenSSL library that allowed remote code execution (RCE) due to a stack buffer overflow
- Mitigation details: Replaced the container OS base image with the latest version and forcibly upgraded system packages to apply OpenSSL version 3.3.6 or later
2026-01-14
v1.9.0
Includes Java Agent v2.2.68New Improved Kubernetes Label Collection Policy
- Enhanced Label Identification (Prefix Support)
- Clearly distinguishes Kubernetes labels from agent internal tags (System Tags)
- Adds an option to store user-defined Kubernetes labels with a prefix
- Introduction of Label Filtering
- Introduces filtering based on an Allowlist or Blocklist to prevent indiscriminate label collection
2025-11-07
v1.8.9
Includes Java Agent v2.2.61Fixed Improved CPU Statistics
- Prevented negative CPU statistics: fixed an issue where CPU metrics could display negative values due to counter resets or race conditions.
- Applied to multiple CPU metrics:
user,sys,nice,irq,softirq,steal,guest,guest_nice. - Ensured all CPU statistics remain non-negative by returning 0 for any negative calculated value.
Fixed Improved Ingress Backend Service Port Handling
- Enhanced backend service port handling: fixed edge cases during Ingress configuration processing.
- Now correctly handles both numeric and named ports for backend services.
2025-09-04
v1.8.8
Includes Java Agent v2.2.61New Improved display of application information in the Container Map when installing APM in Kubernetes environments
If application information is not displayed in the container map, add an option to the environment variables of the container manifest (YAML) where APM is installed. This option specifies the absolute path of the agent inside the container. Options by language are as follows:
- Java
WHATAP_JAVA_AGENT_PATH
There are cases where you use Java APM but the container image is minimal and does not allow execution of Java commands inside. In such cases, register the full path of the java executable in the container environment variable using the WHATAP_EXECUTABLE_JAVA_PATH key.
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 path
- name: WHATAP_JAVA_AGENT_PATH
value: /whatap/whatap.agent-2.2.35.jar
# Full path to java executable in minimal images
- 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-03-28
v1.8.6
New Added the podUid tag to the containerStdOut log.
New Added the containerid tag to the kube_oom_event tag count.
New Added the GPU_I_PROFILE, GPU_I_ID, and DCGM_FI_DRIVER_VERSION metrics to the container_gpu category in the MIG environment.
2025-02-17
v1.8.5
New Supported for collecting metrics related to Kubernetes custom resources via additional features.
-
Added the
collect_custom_resourcesoption to the whatap-master-agent's container by applying additional features instead of basic features.collect_custom_resources bool
Default
falseWhen set to
true, you can check thekube_crandkube_crdcategories in the Metrics Search menu. The collected data can be seen in Object Manifest and Tag count.Note-
kube_crd: It collects the CustomResourceDefinition (CRD) metrics. -
kube_cr: It collects the custom resource (CR) metrics defined as CRD.
-
New Improved the GPU monitoring by adding the DCGM_FI_DEV_POWER_USAGE data to the container_gpu category.
New Added the #whatapSysLog category in the log to provide the user environment's runtime information when running the node agent container.
Fixed Fixed the kube_pod_volume related bugs.
-
Fixed the bug where all data is collected regardless of the cluster project or namespace.
-
Fixed some data missing cases caused by synchronization issues.
Fixed Fixed the issue where container image names are not parsed correctly.
2025-02-11
v1.8.4
Fixed Fixed the CPU usage metric error in cgroupV2.
2025-01-08
v1.8.2
Fixed Fixed the issue where the kube_ingress list does not appear.
2024-12-24
v1.8.1
New Added a new tag count metric.
-
kube_scheduler
Sampling cycle of
1 minIt collects metrics related to the scheduler, a component of the Kubernetes control plane.
-
kube_pv
Sampling cycle of
30 secsIt collects metrics related to the Kubernetes storage persistent volume (PV).
-
kube_pvc
Sampling cycle of
30 secsIt collects metrics related to the Kubernetes storage persistent volume claim (PVC).
-
kube_pod_volume_list{h1}
Sampling cycle of
1 hourIt collects the volume mount data for Kubernetes Pods.
-
kube_container_volume_list{h1}
Sampling cycle of
1 hourIt collects the volume data of the Kubernetes containers.
2024-12-02
v1.8.0
Changed Improved the agent code structure for maintainability and scalability.
2024-11-22
v1.7.16
New Added the feature to enable and disable data collection for etcd monitoring.
-
Collecting whether the etcd reader exists
-
Collecting the etcd reader change trend
-
Collecting the etcd commit & apply trend
New Added the feature to enable and disable the Foreign Project feature.
- Collecting data connected with the monitoring enabled in external Kubernetes projects
2024-10-30
v1.7.15
New In Management > Agent CONF., added the log filtering feature.
Added the log filtering feature to control collection of specific container logs. This feature allows users to refine log collection based on the namespace, Pod name, container name, and such. It also allows or blocks log collection for specific containers if necessary.
2024-10-29
v1.7.14
Fixed Fixed the bug in category metrics where data continues to come in even after the process is dead.
2024-10-21
v1.7.13
New Added the Analysis > Metrics Search kube_ingress category.
It collects the metadata and the related information for Ingress resources. This category is scheduled to be used for implementation of dashboards related to Ingress lists and routing policies.
New Added the container identification-related metrics in the Analysis > Metrics Search kube_oom_event category.
You can identify containers when an OOMKilled event occurs by adding values for namespace, podUid, and containerName as tags.
New Added the port-related metrics to the Analysis > Metrics Search container category.
The metrics related to containerPort used by containers have been added. Kubernetes services perform routing based on container ports within the Pod, so these metrics can be used to express relationships between services, Pods, and containers.
2024-09-30
v1.7.12
New Added the tag count kube_process category.
The tag count has been added to monitor Kubernetes-related processes running on the node. This allows you to trace processes running on a specific node and collect performance metrics.
New Added the kube_client_tls_verify option into the whatap-control-plane-helper container.
Feature Added the node status-specific count metrics to the tag count kube_stat category.
Count metric has been added based on the node status in the cluster. It displays the number of nodes aggregated based on the Conditions(type:Ready) field of the node.
Feature Added the count metric for each Pod status (Phase) into the tag count kube_pod_stat category.
Count metrics have been added based on the Pod status (Phase) in the cluster. This allows you to quickly determine the status (phase) of the Pods running in the cluster.
2024-09-11
v1.7.11
Feature Added the Pod status metric to the tag count kube_stat category.
-
pending_pod: Number of waiting Pods. -
running_pod: Number of running Pods. -
succeeded_pod: Number of succeeded Pods. -
failed_pod: Number of failed Pods. -
unknown_pod: Number of unknown Pods.
Feature Added the creationTimeStamp field to the tagcount kube_node category to display the creation time of each node.
You can trace the node creation time through the creationTimeStamp field.
2024-08-29
v1.7.10
Feature Added the capacity node and allocatable related metrics to the tag count kube_node category.
-
allocatable_ephemeral_storage: It represents ephemeral storage available to the node. -
capacityEphemeralStorage: Total capacity of the node's ephemeral storage. -
capacityPods: Maximum number of Pods that can be scheduled on the node.
Fixed Fixed the issue where millicore values are missing in the allocatable_cpu metric to provide more accurate CPU allocation data.
2024-08-19
v1.7.9
Feature Added collection of RSS-related metrics in the cgroup v2 environment.
container::mem_totalrss: This metric collects the memory RSS (Resident Set Size) of the container in the cgroup v2 environment. This metric indicates the amount of physical memory the container is actually using.
Feature Added the metrics for whether container's request and limit are set.
-
Memory-related metrics
-
container::memory_limit_contained: This metric indicates whether the container's memory limit is set. If the value istrue', it indicates the limit is set. If the value isfalse', it indicates the limit is not set. -
container::memory_request_contained: This metric indicates whether the container's memory request is set. If the value istrue', it indicates the request is set. If the value isfalse', it indicates the request is not set.
-
-
CPU-related metrics
-
container::cpu_limit_contained: This metric indicates whether the container's CPU limit is set. If the value istrue', it indicates the limit is set. If the value isfalse', it indicates the limit is not set. -
container::cpu_request_contained: This metric indicates whether the container's CPU request is set. If the value istrue', it indicates the request is set. If the value isfalse', it indicates the request is not set.
-
-
Ephemeral-Storage-related metrics
-
container::ephemeral_storage_limit_contained: This metric indicates whether the container's ephemeral-storage limit is set. If the value istrue', it indicates the limit is set. If the value isfalse', it indicates the limit is not set. -
container::ephemeral_storage_request_contained: This metric indicates whether the container's ephemeral-storage request is set. If the value istrue', it indicates the request is set. If the value isfalse', it indicates the request is not set.
-
Feature Added node label metrics in the list format.
-
kube_node::labelKey: This metric collects the label keys of the Kubernetes node. This represents the key of each label applied to the node. -
kube_node::labelValue: This metric collects the label values of the Kubernetes node. This represents the value of each label applied to the node.
2024-07-24
v1.7.8
Feature Added the Cluster > Node Disk List menu.
You can easily check the status of disks by monitoring the current usage, free space, and performance meetrics of individual disks mounted on each node in real time in Node Disk List for WhaTap Kubernetes Monitoring. This allows you to efficiently manage disk resources in the cluster and proactively find and respond to potential problems.
Feature Added the Workload > Service List menu.
It provides comprehensive status and information about all services running within the Kubernetes cluster. Through the Service List menu of WhaTap Kubernetes Monitoring, you can easily check the network configuration within the cluster and efficiently monitor the configuration and status of each service.
2024-07-11
v1.7.7
Feature Added the integration method for Java applications and Kubernetes agents.
-
Added the container ID syncing feature by adding
WHATAP_JAVA_AGENT_PATHvalue to the Java agent container environment variables. -
It can view the proc information using the agent process ID, and extract WhaTap Java Home (
$WHATAP_HOME) from the application container's process name by using the proc information. -
If WhaTap Java Home (
$WHATAP_HOME) is not found in the above procedure, extract WhaTap Java Home from the agent image by using the runtimeAPI. -
It can check the version and format of the agent and perform the containerID syncing feature with a valid version only when the following criteria are met.
1. If the file name is whatap.agent-
X.Y.Z.jar and the version is greater than or equal to 2.2.33 (X.Y.Z>= 2.2.33)2. If the file name is whatap.agent.kube.jar
Changed Changed the event collection method: collects data only for the events generated after agent startup (kube_event).
2024-07-01
v1.7.6
Feature Added the tag count.
- Added kube_service_pod_mapping.
- Added the
podUidtag in the kube_pod category. - Added the
externalIptag and PORT(portName,nodePort,servicePort,targetPort) field in the kube_service category. - Added the data for
watch_event_typeandresource_versionin the kube_event category. - Removed duplicate kube_event notifications.
Feature Added WHATAP_JAVA_AGENT_PATH in the whatap-node-helper container environment variable (env).
2024-06-18
v1.7.5
Feature Added the metrics collection option for the disks with the nfs file system.
collect_nfs_disk_enabled: This option determines whether to collect the nfs disks. The default value istrue.
2024-06-07
v1.7.4
Changed It debugs the error logs that occur when agent syncing fails in the whatap-node-helper container.
Fixed Fixed errors that occur while collecting the node disk performance data.
2024-06-04
v1.7.3
Fixed Fixed the apiserver's excessive audit log generation issue that is followed by the Pod event monitoring in whatap-master-agent.
2024-06-02
v1.7.2
Feature Added the following metrics in the server_disk category.
-
blksize: Disk block size. It indicates the unit size for basic read/write on the disk. -
readIops: Number of read operations executed per second, or input/output operations per second. -
writeIops: Number of write operations executed per second. -
queueLength: Queue length for disk I/O requests. It indicates the number of pending I/O requests. -
readBps: Amount of data read per second (Bytes per second). -
writeBps: Amount of data written per second. -
ioPercent: Percentage of time spent on I/O operations on the disk. This represents the percentage of time used for I/O operations against the total time. -
totalInode: Total number of inodes available in the file system. -
usedInode: Number of inodes in use. -
usedInodePercent: Percentage of inodes in use.
2024-05-17
v1.7.1
Fixed Modified the logic to collect the OOMKilled container.
Fixed the bug where, in case of a container whose
lastStateis OOMKilled, it is displayed as OOMKilled even though itsstateis Running.
2024-05-13
v1.7.0
Feature Added data in TagCount.
-
Added the
reasonandmessagefields to thekube_podcategory.reason: Reason of the Pod statusmessage: Message of the Pod status
-
Added the
kube_state(Container state) field to thecontainercategory. -
Collected the pending status pod and container data (
kube_pending_pod,kube_pending_container).The collected data can be seen in Laboratory > Pending Pod Status.
-
Collected the data related to the service (
kube_service). -
Upon booting the agent, modify to send the user installation runtime and cluster runtime to the
#whatapEventcategory.
2024-04-17
v1.6.1
Fixed Fixed the bug where Kubernetes events are missing after a specific time.
2024-04-05
v1.6.0
Fixed In Cluster > Object Manifest, fixed the warning event linking logic bug.
2024-04-04
v1.5.9
Fixed Fixed the issue where specific Kubernetes events such as nodes are missing.
2024-03-26
v1.5.8
Fixed Fixed the issue where data does not appear on the apiserver dashboard when the apiserver's endpoint was in IPV6 format.
Fixed Added a logic to prevent duplicate collection of object manifests collected when the first warning event occurs.
2024-03-07
v1.5.7
Feature The whatap-node-helper collects images and performance data from node disks and containers. After adding the logging and configuration functions for the container, you can handle the options of the corresponding function.
-
collect_volume_detail_enabled Boolean
Default
trueIn the node agent, use the
exec dfcommand for all containers to enable searching the container volume information. You can enable the function to collect storage usage and volume data for all containers running on the node. -
inject_container_id_to_apm_agent_enabled Boolean
Default
trueIt enables container ID injection using
execin the WhaTap APM container. The ID of a container identified by WhaTap APM can be automatically extracted and injected into the APM tool, which can be used to associate the performance monitoring data with the container.NoteThis option is available starting with Java agent 2.2.33 or later.
Changed When collecting Kubernetes events from the master agent, the logic that stops collecting duplicate events when the agent is restarted has been deleted. It modified to perform the duplicate event drop logic on the server side.
Fixed Through the watchLog feature, you can monitor a specific log file (e.g. /var/log/message) on the node system from the WhaTap dashboard. We fixed the bug where additional log collection fails if the file was changed by the system's log rotation logic.
2024-02-23
v1.5.6
Feature In Container > Container volume, added the function to view the MountType property.
Fixed When using the IPv6 address, in Container > Container volume, fixed the search issue.
2024-02-14
v1.5.5
Fixed Fixed the issue where the master agent generates logs at an interval of 30 seconds when it does not have the role for the ReplicationController list.
2024-02-06
v1.5.4
Fixed In the kube_pod category, fixed the problem where the value of the cpu_per_limit field is 100 or more.
2024-01-30
v1.5.3
Fixed The collection interval has been set to 5 seconds for server_disk, server network, and server_base categories when collecting metrics.
Changed When collecting metrics, added external-ip and internal-ip of the node in the kube_node category.
2024-01-26
v1.5.2
Changed Modified to transmit the master agent version to the namespace project.2024-01-25
v1.5.1
Changed Added kube workload(ReplicationController) to the metrics (container, kube_pod, and kube_pod_stat) and Object Manifest.
Changed In case the overlay_config_path option is customized in the crio runtime,
modified to set the path by adding the overlay_config_path option in the whatap-node-helper container environment.
Fixed Changed the namespace project's version transmission interval: when timeout occurs after transmission in 5-second increments for 5 minutes → transmits every minute.
2024-01-16
v1.5.0
Feature Added the Object Manifest collection function.
Added the function to collect and store the cluster objects once a day at midnight in the specified time zone. To use this function, set the agent options as follows. For more information, see the following.
Fixed Improved the performance of the control plane monitoring agent, including the performance improvements for clients that communicate with the cluster.
2024-01-08
v1.4.9
Changed Added the collect_control_plane_monitoring_enabled option. If this option's value is set to true, the Control Plane metric is collected.