From 87dba8c92c8206150183a62600e7b14f4ee60353 Mon Sep 17 00:00:00 2001 From: Yuan Gao Date: Tue, 14 Jul 2026 16:33:36 +0000 Subject: [PATCH 1/3] Add new semantic convention metrics --- docs/system/k8s-metrics.md | 46 ++++++++++++++++++++++++++++++++++++++ model/k8s/metrics.yaml | 35 +++++++++++++++++++++++++++++ package-lock.json | 2 +- 3 files changed, 82 insertions(+), 1 deletion(-) diff --git a/docs/system/k8s-metrics.md b/docs/system/k8s-metrics.md index 282bef35fe..ed9979cd33 100644 --- a/docs/system/k8s-metrics.md +++ b/docs/system/k8s-metrics.md @@ -61,6 +61,8 @@ and therefore inherit its attributes, like `k8s.pod.name` and `k8s.pod.uid`. - [Metric: `k8s.node.filesystem.available`](#metric-k8snodefilesystemavailable) - [Metric: `k8s.node.filesystem.capacity`](#metric-k8snodefilesystemcapacity) - [Metric: `k8s.node.filesystem.usage`](#metric-k8snodefilesystemusage) + - [Metric: `k8s.node.filesystem.inode.count`](#metric-k8snodefilesysteminodecount) + - [Metric: `k8s.node.filesystem.inode.free`](#metric-k8snodefilesysteminodefree) - [Metric: `k8s.node.system_container.cpu.usage`](#metric-k8snodesystem_containercpuusage) - [Metric: `k8s.node.system_container.cpu.time`](#metric-k8snodesystem_containercputime) - [Metric: `k8s.node.system_container.memory.working_set`](#metric-k8snodesystem_containermemoryworking_set) @@ -1317,6 +1319,50 @@ of the Kubelet's stats API. +### Metric: `k8s.node.filesystem.inode.count` + +This metric is [recommended][MetricRecommended]. + + + + + + +| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations | +| -------- | --------------- | ----------- | -------------- | --------- | ------ | +| `k8s.node.filesystem.inode.count` | UpDownCounter | `{inode}` | The total inodes in the node's root filesystem. [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) | + +**[1]:** This metric is derived from the +[FsStats.Inodes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field +of the [NodeStats.Fs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#NodeStats) +of the Kubelet's stats API. + + + + + +### Metric: `k8s.node.filesystem.inode.free` + +This metric is [recommended][MetricRecommended]. + + + + + + +| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations | +| -------- | --------------- | ----------- | -------------- | --------- | ------ | +| `k8s.node.filesystem.inode.free` | UpDownCounter | `{inode}` | The free inodes in the node's root filesystem. [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.node`](/docs/registry/entities/k8s.md#k8s-node) | + +**[1]:** This metric is derived from the +[FsStats.InodesFree](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field +of the [NodeStats.Fs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#NodeStats) +of the Kubelet's stats API. + + + + + ### Metric: `k8s.node.system_container.cpu.usage` This metric is [recommended][MetricRecommended]. diff --git a/model/k8s/metrics.yaml b/model/k8s/metrics.yaml index af801a2537..bbc1e1a182 100644 --- a/model/k8s/metrics.yaml +++ b/model/k8s/metrics.yaml @@ -689,6 +689,41 @@ groups: of the [NodeStats.Fs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#NodeStats) of the Kubelet's stats API. + - id: metric.k8s.node.filesystem.inode.count + type: metric + metric_name: k8s.node.filesystem.inode.count + stability: development + brief: "The total inodes in the node's root filesystem." + instrument: updowncounter + annotations: + code_generation: + metric_value_type: int + unit: "{inode}" + entity_associations: + - k8s.node + note: | + This metric is derived from the + [FsStats.Inodes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field + of the [NodeStats.Fs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#NodeStats) + of the Kubelet's stats API. + - id: metric.k8s.node.filesystem.inode.free + type: metric + metric_name: k8s.node.filesystem.inode.free + stability: development + brief: "The free inodes in the node's root filesystem." + instrument: updowncounter + annotations: + code_generation: + metric_value_type: int + unit: "{inode}" + entity_associations: + - k8s.node + note: | + This metric is derived from the + [FsStats.InodesFree](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field + of the [NodeStats.Fs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#NodeStats) + of the Kubelet's stats API. + # k8s.node.memory.* metrics - id: metric.k8s.node.memory.usage type: metric diff --git a/package-lock.json b/package-lock.json index 5025c41f80..828d639ea1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "semantic-conventions", + "name": "semconv-3858", "lockfileVersion": 3, "requires": true, "packages": { From 2260170cb2cb1410105bb88697d0296176548bf6 Mon Sep 17 00:00:00 2001 From: Yuan Gao Date: Tue, 14 Jul 2026 16:42:23 +0000 Subject: [PATCH 2/3] Add changelog entry for k8s node inode metrics --- .chloggen/add-k8s-node-inode-metrics.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .chloggen/add-k8s-node-inode-metrics.yaml diff --git a/.chloggen/add-k8s-node-inode-metrics.yaml b/.chloggen/add-k8s-node-inode-metrics.yaml new file mode 100644 index 0000000000..b077d1a62c --- /dev/null +++ b/.chloggen/add-k8s-node-inode-metrics.yaml @@ -0,0 +1,22 @@ +# Use this changelog template to create an entry for release notes. +# +# If your change doesn't affect end users you should instead start +# your pull request title with [chore] or use the "Skip Changelog" label. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db) +component: k8s + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: "Add `k8s.node.filesystem.inode.count` and `k8s.node.filesystem.inode.free` metrics to track Kubernetes node root filesystem inode capacity and usage." + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +# The values here must be integers. +issues: [3858] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: From 844290104495d101990693bf81eb7b838e02d85f Mon Sep 17 00:00:00 2001 From: Yuan Gao Date: Mon, 20 Jul 2026 20:31:34 +0000 Subject: [PATCH 3/3] revert auto generated file --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 828d639ea1..5025c41f80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "semconv-3858", + "name": "semantic-conventions", "lockfileVersion": 3, "requires": true, "packages": {