groups: # container.* metrics - id: metric.container.uptime type: metric metric_name: container.uptime annotations: code_generation: metric_value_type: double stability: development brief: "The time the container has been running" note: | Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available. The actual accuracy would depend on the instrumentation and operating system. instrument: gauge unit: "s" # container.cpu.* metrics and attribute group - id: metric.container.cpu.time type: metric metric_name: container.cpu.time annotations: code_generation: metric_value_type: double stability: development brief: "Total CPU time consumed" note: > Total CPU time consumed by the specific container on all available CPU cores instrument: counter unit: "s" attributes: - ref: cpu.mode brief: "The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels." note: "Following states SHOULD be used: `user`, `system`, `kernel`" requirement_level: conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API. - id: metric.container.cpu.usage type: metric metric_name: container.cpu.usage annotations: code_generation: metric_value_type: double stability: development brief: "Container's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs" note: > CPU usage of the specific container on all available CPU cores, averaged over the sample window instrument: gauge unit: "{cpu}" attributes: - ref: cpu.mode brief: "The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels." note: "Following states SHOULD be used: `user`, `system`, `kernel`" requirement_level: conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API. # container.memory.* metrics and attribute group - id: metric.container.memory.usage type: metric metric_name: container.memory.usage annotations: code_generation: metric_value_type: int stability: development brief: "Memory usage of the container." note: > Memory usage of the container. instrument: counter unit: "By" # container.disk.io.* metrics and attribute group - id: metric.container.disk.io type: metric metric_name: container.disk.io annotations: code_generation: metric_value_type: int stability: development brief: "Disk bytes for the container." note: > The total number of bytes read/written successfully (aggregated from all disks). instrument: counter unit: "By" attributes: - ref: disk.io.direction - ref: system.device # container.network.io.* metrics and attribute group - id: metric.container.network.io type: metric metric_name: container.network.io annotations: code_generation: metric_value_type: int stability: development brief: "Network bytes for the container." note: > The number of bytes sent/received on all network interfaces by the container. instrument: counter unit: "By" attributes: - ref: network.io.direction - ref: network.interface.name # container.filesystem.* metrics - id: metric.container.filesystem.available type: metric metric_name: container.filesystem.available stability: development brief: "Container filesystem available bytes" instrument: updowncounter unit: "By" annotations: code_generation: metric_value_type: int entity_associations: - container note: | In K8s, this metric is derived from the [FsStats.AvailableBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#ContainerStats) of the Kubelet's stats API. - id: metric.container.filesystem.capacity type: metric metric_name: container.filesystem.capacity stability: development brief: "Container filesystem capacity" instrument: updowncounter unit: "By" annotations: code_generation: metric_value_type: int entity_associations: - container note: | In K8s, this metric is derived from the [FsStats.CapacityBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#ContainerStats) of the Kubelet's stats API. - id: metric.container.filesystem.usage type: metric metric_name: container.filesystem.usage stability: development brief: "Container filesystem usage" instrument: updowncounter unit: "By" annotations: code_generation: metric_value_type: int entity_associations: - container note: | This may not equal capacity - available. In K8s, this metric is derived from the [FsStats.UsedBytes](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#FsStats) field of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/kubelet@v0.33.0/pkg/apis/stats/v1alpha1#ContainerStats) of the Kubelet's stats API.