groups: # General system attributes - id: attributes.system prefix: system type: attribute_group brief: "Describes System metric attributes" attributes: - id: device type: string brief: "The device identifier" examples: ["(identifier)"] # system.cpu.* metrics and attribute group - id: attributes.system.cpu prefix: system.cpu type: attribute_group brief: "Describes System CPU metric attributes" attributes: - id: state type: allow_custom_values: true members: - id: user value: 'user' - id: system value: 'system' - id: nice value: 'nice' - id: idle value: 'idle' - id: iowait value: 'iowait' - id: interrupt value: 'interrupt' - id: steal value: 'steal' brief: "The state of the CPU" examples: ["idle", "interrupt"] - id: logical_number type: int brief: "The logical CPU number [0..n-1]" examples: [1] - id: metric.system.cpu.time type: metric metric_name: system.cpu.time brief: "Seconds each logical CPU spent on each mode" instrument: counter unit: "s" attributes: - ref: system.cpu.state - ref: system.cpu.logical_number - id: metric.system.cpu.utilization type: metric metric_name: system.cpu.utilization brief: "Difference in system.cpu.time since the last measurement, divided by the elapsed time and number of logical CPUs" instrument: gauge unit: "1" attributes: - ref: system.cpu.state - ref: system.cpu.logical_number - id: metric.system.cpu.physical.count type: metric metric_name: system.cpu.physical.count brief: "Reports the number of actual physical processor cores on the hardware" instrument: updowncounter unit: "{cpu}" attributes: [] - id: metric.system.cpu.logical.count type: metric metric_name: system.cpu.logical.count brief: "Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking" instrument: updowncounter unit: "{cpu}" attributes: [] # sytem.memory.* metrics and attribute group - id: attributes.system.memory prefix: system.memory type: attribute_group brief: "Describes System Memory metric attributes" attributes: - id: state type: allow_custom_values: true members: - id: total value: 'total' - id: used value: 'used' - id: free value: 'free' - id: shared value: 'shared' - id: buffers value: 'buffers' - id: cached value: 'cached' brief: "The memory state" examples: ["free", "cached"] - id: metric.system.memory.usage type: metric metric_name: system.memory.usage brief: "" instrument: updowncounter unit: "By" attributes: - ref: system.memory.state - id: metric.system.memory.utilization type: metric metric_name: system.memory.utilization brief: "" instrument: gauge unit: "1" attributes: - ref: system.memory.state # system.paging.* metrics and attribute group - id: attributes.system.paging prefix: system.paging type: attribute_group brief: "Describes System Memory Paging metric attributes" attributes: - id: state type: allow_custom_values: false members: - id: used value: 'used' - id: free value: 'free' brief: "The memory paging state" examples: ["free"] - id: type type: allow_custom_values: false members: - id: major value: 'major' - id: minor value: 'minor' brief: "The memory paging type" examples: ["minor"] - id: direction type: allow_custom_values: false members: - id: in value: 'in' - id: out value: 'out' brief: "The paging access direction" examples: ["in"] - id: metric.system.paging.usage type: metric metric_name: system.paging.usage brief: "Unix swap or windows pagefile usage" instrument: updowncounter unit: "By" attributes: - ref: system.paging.state - id: metric.system.paging.utilization type: metric metric_name: system.paging.utilization brief: "" instrument: gauge unit: "1" attributes: - ref: system.paging.state - id: metric.system.paging.faults type: metric metric_name: system.paging.faults brief: "" instrument: counter unit: "{fault}" attributes: - ref: system.paging.type - id: metric.system.paging.operations type: metric metric_name: system.paging.operations brief: "" instrument: counter unit: "{operation}" attributes: - ref: system.paging.type - ref: system.paging.direction # system.disk.* metrics and attribute group - id: attributes.system.disk prefix: system.disk type: attribute_group brief: "Describes System Disk metric attributes" attributes: - id: direction type: allow_custom_values: false members: - id: read value: 'read' - id: write value: 'write' brief: "The disk operation direction" examples: ["read"] - id: metric.system.disk.io type: metric metric_name: system.disk.io brief: "" instrument: counter unit: "By" attributes: - ref: system.device - ref: system.disk.direction - id: metric.system.disk.operations type: metric metric_name: system.disk.operations brief: "" instrument: counter unit: "{operation}" attributes: - ref: system.device - ref: system.disk.direction - id: metric.system.disk.io_time type: metric metric_name: system.disk.io_time brief: "Time disk spent activated" instrument: counter unit: "s" note: | The real elapsed time ("wall clock") used in the I/O path (time from operations running in parallel are not counted). Measured as: - Linux: Field 13 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats) - Windows: The complement of ["Disk\% Idle Time"](https://learn.microsoft.com/en-us/archive/blogs/askcore/windows-performance-monitor-disk-counters-explained#windows-performance-monitor-disk-counters-explained) performance counter: `uptime * (100 - "Disk\% Idle Time") / 100` attributes: - ref: system.device - id: metric.system.disk.operation_time type: metric metric_name: system.disk.operation_time brief: "Sum of the time each operation took to complete" instrument: counter unit: "s" note: | Because it is the sum of time each request took, parallel-issued requests each contribute to make the count grow. Measured as: - Linux: Fields 7 & 11 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats) - Windows: "Avg. Disk sec/Read" perf counter multiplied by "Disk Reads/sec" perf counter (similar for Writes) attributes: - ref: system.device - ref: system.disk.direction - id: metric.system.disk.merged type: metric metric_name: system.disk.merged brief: "" instrument: counter unit: "{operation}" attributes: - ref: system.device - ref: system.disk.direction # system.filesystem.* metrics and attribute group - id: attributes.system.filesystem prefix: system.filesystem type: attribute_group brief: "Describes Filesystem metric attributes" attributes: - id: state brief: "The filesystem state" type: allow_custom_values: false members: - id: used value: 'used' - id: free value: 'free' - id: reserved value: 'reserved' examples: ["used"] - id: type type: allow_custom_values: true members: - id: fat32 value: 'fat32' - id: exfat value: 'exfat' - id: ntfs value: 'ntfs' - id: refs value: 'refs' - id: hfsplus value: 'hfsplus' - id: ext4 value: 'ext4' brief: "The filesystem type" examples: ["ext4"] - id: mode type: string brief: "The filesystem mode" examples: ["rw, ro"] - id: mountpoint type: string brief: "The filesystem mount path" examples: ["/mnt/data"] - id: metric.system.filesystem.usage type: metric metric_name: system.filesystem.usage brief: "" instrument: updowncounter unit: "By" attributes: - ref: system.device - ref: system.filesystem.state - ref: system.filesystem.type - ref: system.filesystem.mode - ref: system.filesystem.mountpoint - id: metric.system.filesystem.utilization type: metric metric_name: system.filesystem.utilization brief: "" instrument: gauge unit: "1" attributes: - ref: system.device - ref: system.filesystem.state - ref: system.filesystem.type - ref: system.filesystem.mode - ref: system.filesystem.mountpoint # system.network.* metrics and attribute group - id: attributes.system.network prefix: system.network type: attribute_group brief: "Describes Network metric attributes" attributes: - id: direction type: allow_custom_values: false members: - id: transmit value: 'transmit' - id: receive value: 'receive' brief: "" examples: ["transmit"] - id: state type: allow_custom_values: false members: - id: close value: 'close' - id: close_wait value: 'close_wait' - id: closing value: 'closing' - id: delete value: 'delete' - id: established value: 'established' - id: fin_wait_1 value: 'fin_wait_1' - id: fin_wait_2 value: 'fin_wait_2' - id: last_ack value: 'last_ack' - id: listen value: 'listen' - id: syn_recv value: 'syn_recv' - id: syn_sent value: 'syn_sent' - id: time_wait value: 'time_wait' brief: "A stateless protocol MUST NOT set this attribute" examples: ["close_wait"] - id: metric.system.network.dropped type: metric metric_name: system.network.dropped brief: "Count of packets that are dropped or discarded even though there was no error" instrument: counter unit: "{packet}" note: | Measured as: - Linux: the `drop` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html)) - Windows: [`InDiscards`/`OutDiscards`](https://docs.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2) from [`GetIfEntry2`](https://docs.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2) attributes: - ref: system.device - ref: system.network.direction - id: metric.system.network.packets type: metric metric_name: system.network.packets brief: "" instrument: counter unit: "{packet}" attributes: - ref: system.device - ref: system.network.direction - id: metric.system.network.errors type: metric metric_name: system.network.errors brief: "Count of network errors detected" instrument: counter unit: "{error}" note: | Measured as: - Linux: the `errs` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html)). - Windows: [`InErrors`/`OutErrors`](https://docs.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2) from [`GetIfEntry2`](https://docs.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2). attributes: - ref: system.device - ref: system.network.direction - id: metric.system.network.io type: metric metric_name: system.network.io brief: "" instrument: counter unit: "By" attributes: - ref: system.device - ref: system.network.direction - id: metric.system.network.connections type: metric metric_name: system.network.connections brief: "" instrument: updowncounter unit: "{connection}" attributes: - ref: system.device - ref: system.network.state - ref: network.transport # system.processes.* metrics and attribute group - id: attributes.system.processes prefix: system.processes type: attribute_group brief: "Describes System Process metric attributes" attributes: - id: status type: allow_custom_values: true members: - id: running value: 'running' - id: sleeping value: 'sleeping' - id: stopped value: 'stopped' - id: defunct value: 'defunct' brief: > The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES) examples: ["running"] - id: metric.system.processes.count type: metric metric_name: system.processes.count brief: "Total number of processes in each state" instrument: updowncounter unit: "{process}" attributes: - ref: system.processes.status - id: metric.system.processes.created type: metric metric_name: system.processes.created brief: "Total number of processes created over uptime of the host" instrument: counter unit: "{process}"