[receiver/kubeletstats] Unit 1 must be used only for fractions and ratios #35849
Open
Description
Component(s)
receiver/kubeletstats
Describe the issue you're reporting
Describe
Some metrics, such as container.memory.page_faults
, use 1
for Unit, but should be changed to use the appropriate Unit according to Metrics Semantic Conventions.
Metrics that need to be modified
container.memory.major_page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
container.memory.page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
k8s.node.memory.major_page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
k8s.node.memory.page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
k8s.pod.memory.major_page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
k8s.pod.memory.page_faults
- Change Unit from
1
to{page_fault}
.
- Change Unit from
k8s.volume.inodes
- Change Unit from
1
to{inode}
.
- Change Unit from
k8s.volume.inodes.free
- Change Unit from
1
to{inode}
.
- Change Unit from
k8s.volume.inodes.used
- Change Unit from
1
to{inode}
.
- Change Unit from
Problems caused by using 1 for Unit
For example, when using the Prometheus Exporter, metrics in OpenTelemetry format are normalized to metric names according to conventions in Prometheus by looking at Unit, Metric Type, etc.
If a metric has a Metric Type
of Gauge
and a Unit
of 1
, the Prometheus Translator will assume that the metric represents a percentage of 0-1 and assign a Suffix of _ratio
(https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/translator/prometheus#:~:text=Percentages%20(unit%20is%201)), which is highly misleading. This is highly misleading.