1description: >
2    This interface provides the Board Manager Metric values for resource
3    utilization.
4
5properties:
6    - name: Value
7      type: double
8      description: >
9          The current metric value.
10      flags:
11          - readonly
12    - name: MaxValue
13      type: double
14      default: infinity
15      flags:
16          - readonly
17      description: >
18          The maximum supported metric value.
19    - name: MinValue
20      type: double
21      default: -infinity
22      flags:
23          - readonly
24      description: >
25          The minimum supported metric value.
26    - name: Unit
27      type: enum[self.Unit]
28      description: >
29          The unit for metric value. For example, memory in bytes, CPU in
30          percent, reboots in count.
31      flags:
32          - const
33
34enumerations:
35    - name: Unit
36      description: >
37          Metric value unit.
38      values:
39          - name: Bytes
40            description: >
41                Unit to indicate bytes.
42          - name: Count
43            description: >
44                Unit to indicate counts.
45          - name: Percent
46            description: >
47                Unit to indicate percentage.
48
49associations:
50    - name: measuring
51      description: >
52          Metrics measure the inventory item's resource utilization, therefore
53          implement an association to the inventory item.
54      reverse_names:
55          - measured_by
56      required_endpoint_interfaces:
57          - xyz.openbmc_project.Inventory.Item
58
59paths:
60    - namespace: /xyz/openbmc_project/metric
61      description: >
62          The root path for all Metrics.
63      segments:
64          - name: TotalMemory
65            description: >
66                The total memory metric.
67            value: memory/total
68          - name: FreeMemory
69            description: >
70                The free memory metric.
71            value: memory/free
72          - name: AvailableMemory
73            description: >
74                The available memory metric.
75            value: memory/available
76          - name: SharedMemory
77            description: >
78                The shared memory utilization.
79            value: memory/shared
80          - name: BufferedAndCachedMemory
81            description: >
82                The buffered and cached memory memory utilization.
83            value: memory/buffered_and_cached
84          - name: KernelCPU
85            description: >
86                The kernel CPU utilization.
87            value: cpu/kernel
88          - name: UserCPU
89            description: >
90                The user CPU utilization.
91            value: cpu/user
92          - name: TotalCPU
93            description: >
94                The total CPU utilization.
95            value: cpu/total
96          - name: ReadWriteStorage
97            description: >
98                The available read write storage.
99            value: storage/rw
100          - name: TmpStorage
101            description: >
102                The available temporary storage.
103            value: storage/tmp
104          - name: RebootCount
105            description: >
106                Reboot statistic to track number of times device rebooted
107                without failure.
108            value: reboot/count
109          - name: RebootCountWithFailure
110            description: >
111                Reboot statistic to track number of times device rebooted
112                because of a failure.
113            value: reboot/count_with_failure
114    - name: BMC
115      description: >
116          The BMC metrics.
117      value: /xyz/openbmc_project/metric/bmc
118