Add k8s Pod volume metrics (#2319)

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>
This commit is contained in:
Christos Markou 2025-07-15 09:46:46 +03:00 committed by GitHub
parent 37d19be4c6
commit bb0363a772
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 450 additions and 0 deletions

View File

@ -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 Pod Volume metrics
# 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: [1485]
# (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:

View File

@ -62,6 +62,7 @@ and one for disabling the old schema called `semconv.k8s.disableLegacy`. Then:
- [K8s ResourceQuota metrics](#k8s-resourcequota-metrics) - [K8s ResourceQuota metrics](#k8s-resourcequota-metrics)
- [K8s Node condition metrics](#k8s-node-condition-metrics) - [K8s Node condition metrics](#k8s-node-condition-metrics)
- [K8s Filesystem metrics](#k8s-filesystem-metrics) - [K8s Filesystem metrics](#k8s-filesystem-metrics)
- [K8s Pod Volume metrics](#k8s-pod-volume-metrics)
<!-- tocstop --> <!-- tocstop -->
@ -396,3 +397,24 @@ The changes in their metrics are the following:
| `container.filesystem.usage` gauge | `container.filesystem.usage` updowncounter | | `container.filesystem.usage` gauge | `container.filesystem.usage` updowncounter |
<!-- prettier-ignore-end --> <!-- prettier-ignore-end -->
### K8s Pod Volume metrics
The K8s Pod volume metrics implemented by the Collector and specifically the
[k8scluster](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.119.0/receiver/k8sclusterreceiver/documentation.md)
receiver were introduced as semantic conventions in
[#2319](https://github.com/open-telemetry/semantic-conventions/pull/2319).
The changes in these metrics are the following:
<!-- prettier-ignore-start -->
| Old (Collector) ![changed](https://img.shields.io/badge/changed-orange?style=flat) | New |
|------------------------------------------------------------------------------------|------------------------------|
| `k8s.volume.available` | `k8s.pod.volume.available` |
| `k8s.volume.capacity` | `k8s.pod.volume.capacity` |
| `k8s.volume.inodes` | `k8s.pod.volume.inode.count` |
| `k8s.volume.inodes.free` | `k8s.pod.volume.inode.free` |
| `k8s.volume.inodes.used` | `k8s.pod.volume.inode.used` |
<!-- prettier-ignore-start -->

View File

@ -27,6 +27,12 @@ and therefore inherit its attributes, like `k8s.pod.name` and `k8s.pod.uid`.
- [Metric: `k8s.pod.filesystem.available`](#metric-k8spodfilesystemavailable) - [Metric: `k8s.pod.filesystem.available`](#metric-k8spodfilesystemavailable)
- [Metric: `k8s.pod.filesystem.capacity`](#metric-k8spodfilesystemcapacity) - [Metric: `k8s.pod.filesystem.capacity`](#metric-k8spodfilesystemcapacity)
- [Metric: `k8s.pod.filesystem.usage`](#metric-k8spodfilesystemusage) - [Metric: `k8s.pod.filesystem.usage`](#metric-k8spodfilesystemusage)
- [Metric: `k8s.pod.volume.available`](#metric-k8spodvolumeavailable)
- [Metric: `k8s.pod.volume.capacity`](#metric-k8spodvolumecapacity)
- [Metric: `k8s.pod.volume.usage`](#metric-k8spodvolumeusage)
- [Metric: `k8s.pod.volume.inode.count`](#metric-k8spodvolumeinodecount)
- [Metric: `k8s.pod.volume.inode.used`](#metric-k8spodvolumeinodeused)
- [Metric: `k8s.pod.volume.inode.free`](#metric-k8spodvolumeinodefree)
- [Container metrics](#container-metrics) - [Container metrics](#container-metrics)
- [Metric: `k8s.container.status.state`](#metric-k8scontainerstatusstate) - [Metric: `k8s.container.status.state`](#metric-k8scontainerstatusstate)
- [Metric: `k8s.container.status.reason`](#metric-k8scontainerstatusreason) - [Metric: `k8s.container.status.reason`](#metric-k8scontainerstatusreason)
@ -355,6 +361,268 @@ of the Kubelet's stats API.
<!-- END AUTOGENERATED TEXT --> <!-- END AUTOGENERATED TEXT -->
<!-- endsemconv --> <!-- endsemconv -->
### Metric: `k8s.pod.volume.available`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.available -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.available` | UpDownCounter | `By` | Pod volume storage space available [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This metric is derived from the
[VolumeStats.AvailableBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
### Metric: `k8s.pod.volume.capacity`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.capacity -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.capacity` | UpDownCounter | `By` | Pod volume total capacity [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This metric is derived from the
[VolumeStats.CapacityBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
### Metric: `k8s.pod.volume.usage`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.usage -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.usage` | UpDownCounter | `By` | Pod volume usage [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This may not equal capacity - available.
This metric is derived from the
[VolumeStats.UsedBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
### Metric: `k8s.pod.volume.inode.count`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.inode.count -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.inode.count` | UpDownCounter | `{inode}` | The total inodes in the filesystem of the Pod's volume [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This metric is derived from the
[VolumeStats.Inodes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
### Metric: `k8s.pod.volume.inode.used`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.inode.used -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.inode.used` | UpDownCounter | `{inode}` | The inodes used by the filesystem of the Pod's volume [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This metric is derived from the
[VolumeStats.InodesUsed](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
This may not be equal to `inodes - free` because filesystem may share inodes with other filesystems.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
### Metric: `k8s.pod.volume.inode.free`
This metric is [recommended][MetricRecommended].
<!-- semconv metric.k8s.pod.volume.inode.free -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `k8s.pod.volume.inode.free` | UpDownCounter | `{inode}` | The free inodes in the filesystem of the Pod's volume [1] | ![Development](https://img.shields.io/badge/-development-blue) | [`k8s.pod`](/docs/registry/entities/k8s.md#k8s-pod) |
**[1]:** This metric is derived from the
[VolumeStats.InodesFree](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`k8s.volume.name`](/docs/registry/attributes/k8s.md) | string | The name of the K8s volume. | `volume0` | `Required` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`k8s.volume.type`](/docs/registry/attributes/k8s.md) | string | The type of the K8s volume. | `emptyDir`; `persistentVolumeClaim` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
---
`k8s.volume.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `configMap` | A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `downwardAPI` | A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `emptyDir` | An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `local` | A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `persistentVolumeClaim` | A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume | ![Development](https://img.shields.io/badge/-development-blue) |
| `secret` | A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
## Container metrics ## Container metrics
**Description:** Container level metrics captured under the namespace `k8s.container`. **Description:** Container level metrics captured under the namespace `k8s.container`.

View File

@ -146,6 +146,144 @@ groups:
of the [PodStats.EphemeralStorage](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the [PodStats.EphemeralStorage](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats)
of the Kubelet's stats API. of the Kubelet's stats API.
# k8s.pod.volume.* metrics
- id: metric.k8s.pod.volume.available
type: metric
metric_name: k8s.pod.volume.available
stability: development
annotations:
code_generation:
metric_value_type: int
brief: "Pod volume storage space available"
instrument: updowncounter
unit: "By"
entity_associations:
- k8s.pod
note: |
This metric is derived from the
[VolumeStats.AvailableBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
- id: metric.k8s.pod.volume.capacity
type: metric
metric_name: k8s.pod.volume.capacity
stability: development
brief: "Pod volume total capacity"
instrument: updowncounter
annotations:
code_generation:
metric_value_type: int
unit: "By"
entity_associations:
- k8s.pod
note: |
This metric is derived from the
[VolumeStats.CapacityBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
- id: metric.k8s.pod.volume.usage
type: metric
metric_name: k8s.pod.volume.usage
stability: development
brief: "Pod volume usage"
instrument: updowncounter
annotations:
code_generation:
metric_value_type: int
unit: "By"
entity_associations:
- k8s.pod
note: |
This may not equal capacity - available.
This metric is derived from the
[VolumeStats.UsedBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
- id: metric.k8s.pod.volume.inode.count
type: metric
metric_name: k8s.pod.volume.inode.count
stability: development
brief: "The total inodes in the filesystem of the Pod's volume"
instrument: updowncounter
annotations:
code_generation:
metric_value_type: int
unit: "{inode}"
entity_associations:
- k8s.pod
note: |
This metric is derived from the
[VolumeStats.Inodes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
- id: metric.k8s.pod.volume.inode.used
type: metric
metric_name: k8s.pod.volume.inode.used
stability: development
brief: "The inodes used by the filesystem of the Pod's volume"
instrument: updowncounter
annotations:
code_generation:
metric_value_type: int
unit: "{inode}"
entity_associations:
- k8s.pod
note: |
This metric is derived from the
[VolumeStats.InodesUsed](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
This may not be equal to `inodes - free` because filesystem may share inodes with other filesystems.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
- id: metric.k8s.pod.volume.inode.free
type: metric
metric_name: k8s.pod.volume.inode.free
stability: development
brief: "The free inodes in the filesystem of the Pod's volume"
instrument: updowncounter
annotations:
code_generation:
metric_value_type: int
unit: "{inode}"
entity_associations:
- k8s.pod
note: |
This metric is derived from the
[VolumeStats.InodesFree](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#VolumeStats) field
of the [PodStats](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#PodStats) of the
Kubelet's stats API.
attributes:
- ref: k8s.volume.name
requirement_level: required
- ref: k8s.volume.type
requirement_level: recommended
# k8s.container.* metrics # k8s.container.* metrics
- id: metric.k8s.container.status.state - id: metric.k8s.container.status.state
type: metric type: metric