Semantic Conventions for OS Process Metrics
Status: Experimental
This document describes instruments and attributes for common OS process level
metrics in OpenTelemetry. Also consider the general metric semantic
conventions when creating
instruments not explicitly defined in this document. OS process metrics are
not related to the runtime environment of the program, and should take
measurements from the operating system. For runtime environment metrics see
semantic conventions for runtime environment
metrics.
Warning Existing instrumentations and collector that are using
v1.21.0 of this document
(or prior):
- SHOULD NOT adopt any breaking changes from document until the system
semantic conventions are marked stable. Conventions include, but are not
limited to, attributes, metric names, and unit of measure.
- SHOULD introduce a control mechanism to allow users to opt-in to the new
conventions once the migration plan is finalized.
Process Metrics
Metric: process.cpu.time
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.cpu.time | Counter | s | Total CPU seconds broken down by different states. |  |
Attribute | Type | Description | Examples | Requirement Level | Stability |
---|
process.cpu.state | string | A process SHOULD be characterized either by data points with no state labels, or only data points with state labels. | system ; user ; wait | Recommended |  |
process.cpu.state
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 |
---|
system | system |  |
user | user |  |
wait | wait |  |
Metric: process.cpu.utilization
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.cpu.utilization | Gauge | 1 | Difference in process.cpu.time since the last measurement, divided by the elapsed time and number of CPUs available to the process. |  |
Attribute | Type | Description | Examples | Requirement Level | Stability |
---|
process.cpu.state | string | A process SHOULD be characterized either by data points with no state labels, or only data points with state labels. | system ; user ; wait | Recommended |  |
process.cpu.state
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 |
---|
system | system |  |
user | user |  |
wait | wait |  |
Metric: process.memory.usage
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.memory.usage | UpDownCounter | By | The amount of physical memory in use. |  |
Metric: process.memory.virtual
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.memory.virtual | UpDownCounter | By | The amount of committed virtual memory. |  |
Metric: process.disk.io
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.disk.io | Counter | By | Disk bytes transferred. |  |
disk.io.direction
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 |
---|
read | read |  |
write | write |  |
Metric: process.network.io
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.network.io | Counter | By | Network bytes transferred. |  |
network.io.direction
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 |
---|
transmit | transmit |  |
receive | receive |  |
Metric: process.thread.count
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.thread.count | UpDownCounter | {thread} | Process threads count. |  |
Metric: process.open_file_descriptor.count
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.open_file_descriptor.count | UpDownCounter | {count} | Number of file descriptors in use by the process. |  |
Metric: process.context_switches
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.context_switches | Counter | {count} | Number of times the process has been context switched. |  |
process.context_switch_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 |
---|
voluntary | voluntary |  |
involuntary | involuntary |  |
Metric: process.paging.faults
This metric is recommended.
Name | Instrument Type | Unit (UCUM) | Description | Stability |
---|
process.paging.faults | Counter | {fault} | Number of page faults the process has made. |  |
Attribute | Type | Description | Examples | Requirement Level | Stability |
---|
process.paging.fault_type | string | The type of page fault for this data point. Type major is for major/hard page faults, and minor is for minor/soft page faults. | major ; minor | Recommended |  |
process.paging.fault_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 |
---|
major | major |  |
minor | minor |  |