1 marek 1.1 // Copyright (c) 2009 DMTF. All rights reserved.
2 [Version ( "2.22.0" ),
3 UMLPackagePath ( "CIM::Metrics::BaseMetric" ),
4 Description (
5 "CIM_BaseMetricDefinition represents the definitional aspects "
6 "of a metric, i.e., a definition template containing meta data "
7 "about a new metric. Since CIM_BaseMetricDefinition does not "
8 "capture metric instance information, it does not contain the "
9 "value of the metric. The associated class CIM_BaseMetricValue "
10 "holds the metric value and encapsulates its runtime behavior. "
11 "The purpose of CIM_BaseMetricDefinition is to provide a "
12 "convenient mechanism for introducing a new metric definition "
13 "at runtime and capturing its instance values in a separate "
14 "class. This mechanism is targeted specifically at CIM users "
15 "who would like to enhance existing CIM schemas by introducing "
16 "domain-specific metrics that are not captured in the existing "
17 "CIM schemas. In addition, vendors of managed resources may "
18 "make use of this mechanism if a small subset of a potentially "
19 "large and heterogeneous amount of performance-related data "
20 "needs to be exposed, based on the context in which the data is "
21 "captured. Additional meta data for a metric can be provided by "
22 marek 1.1 "subclassing from CIM_BaseMetricDefinition. The "
23 "CIM_BaseMetricDefinition should be associated with the "
24 "CIM_ManagedElement(s) to which it applies." )]
25 class CIM_BaseMetricDefinition : CIM_ManagedElement {
26
27 [Key, Description (
28 "A string that uniquely identifies the metric definition. "
29 "The use of OSF UUID/GUIDs is recommended." )]
30 string Id;
31
32 [Description (
33 "The name of the metric. This name does not have to be "
34 "unique, but should be descriptive and may contain "
35 "blanks." )]
36 string Name;
37
38 [Description (
39 "The data type of the metric. For example, \"boolean\" "
40 "(value=1) or \"datetime\" (=3) may be specified. These "
41 "types represent the datatypes defined for CIM." ),
42 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
43 marek 1.1 "11", "12", "13", "14" },
44 Values { "boolean", "char16", "datetime", "real32", "real64",
45 "sint16", "sint32", "sint64", "sint8", "string", "uint16",
46 "uint32", "uint64", "uint8" }]
47 uint16 DataType;
48
49 [Description (
50 "An enumerated value that describes the characteristics "
51 "of the metric, for purposes of performing calculations. "
52 "The property can take one of the following values: \n"
53 "1=\"Non-calculable\" -> a string. Arithmetic makes no "
54 "sense. \n"
55 "2=\"Summable\" -> It is reasonable to sum this value "
56 "over many instances of e.g., UnitOfWork, such as the "
57 "number of files processed in a backup job. For example, "
58 "if each backup job is a UnitOfWork, and each job backs "
59 "up 27,000 files on average, then it makes sense to say "
60 "that 100 backup jobs processed 2,700,000 files. \n"
61 "3=\"Non-summable\" -> It does not make sense to sum this "
62 "value over many instances of UnitOfWork. An example "
63 "would be a metric that measures the queue length when a "
64 marek 1.1 "job arrives at a server. If each job is a UnitOfWork, "
65 "and the average queue length when each job arrives is "
66 "33, it does not make sense to say that the queue length "
67 "for 100 jobs is 3300. It does make sense to say that the "
68 "mean is 33." ),
69 ValueMap { "1", "2", "3" },
70 Values { "Non-calculable", "Summable", "Non-summable" }]
71 uint16 Calculable;
72
73 [Description (
74 "Identifies the specific units of a value. Examples are "
75 "Bytes, Packets, Jobs, Files, Milliseconds, and Amps." )]
76 string Units;
77
78 [Description (
79 "Defines one or more strings that can be used to refine "
80 "(break down) queries against the BaseMetricValues along "
81 "a certain dimension. An example is a transaction name, "
82 "allowing the break down of the total value for all "
83 "transactions into a set of values, one for each "
84 "transaction name. Other examples might be application "
85 marek 1.1 "system or user group name. The strings are free format "
86 "and should be meaningful to the end users of the metric "
87 "data. The strings indicate which break down dimensions "
88 "are supported for this metric definition, by the "
89 "underlying instrumentation." )]
90 string BreakdownDimensions[];
91
92 [Description (
93 "IsContinuous indicates whether or not the metric value "
94 "is continuous or scalar. Performance metrics are an "
95 "example of a linear metric. Examples of non-linear "
96 "metrics include error codes or operational states. "
97 "Continuous metrics can be compared using the \"greater "
98 "than\" relation." )]
99 boolean IsContinuous;
100
101 [Description (
102 "ChangeType indicates how the metric value changes, in "
103 "the form of typical combinations of finer grain "
104 "attributes such as direction change, minimum and maximum "
105 "values, and wrapping semantics. \n"
106 marek 1.1 "0=\"Unknown\": The metric designer did not qualify the "
107 "ChangeType. \n"
108 "2=\"N/A\": If the \"IsContinuous\" property is \"false\", "
109 "ChangeType does not make sense and MUST be is set to "
110 "\"N/A\". \n"
111 "3=\"Counter\": The metric is a counter metric. These "
112 "have non-negative integer values which increase "
113 "monotonically until reaching the maximum representable "
114 "number and then wrap around and start increasing from 0. "
115 "Such counters, also known as rollover counters, can be "
116 "used for instance to count the number of network errors "
117 "or the number of transactions processed. The only way "
118 "for a client application to keep track of wrap arounds "
119 "is to retrieve the value of the counter in appropriately "
120 "short intervals. \n"
121 "4=\"Gauge\": The metric is a gauge metric. These have "
122 "integer or float values that can increase and decrease "
123 "arbitrarily. A gauge MUST NOT wrap when reaching the "
124 "minimum or maximum representable number, instead, the "
125 "value \"sticks\" at that number. Minimum or maximum "
126 "values inside of the representable value range at which "
127 marek 1.1 "the metric value \"sticks\", may or may not be defined. \n"
128 "Vendors may extend this property in the vendor reserved "
129 "range." ),
130 ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" },
131 Values { "Unknown", "N/A", "Counter", "Gauge",
132 "DMTF Reserved", "Vendor Reserved" },
133 ModelCorrespondence { "CIM_BaseMetricDefinition.IsContinuous" }]
134 uint16 ChangeType;
135
136 [Description (
137 "TimeScope indicates the time scope to which the metric "
138 "value applies. \n"
139 "0=\"Unknown\" indicates the time scope was not qualified "
140 "by the metric designer, or is unknown to the provider. \n"
141 "2=\"Point\" indicates that the metric applies to a point "
142 "in time. On the corresponding BaseMetricValue instances, "
143 "TimeStamp specifies the point in time and Duration is "
144 "always 0. \n"
145 "3=\"Interval\" indicates that the metric applies to a "
146 "time interval. On the corresponding BaseMetricValue "
147 "instances, TimeStamp specifies the end of the time "
148 marek 1.1 "interval and Duration specifies its duration. \n"
149 "4=\"StartupInterval\" indicates that the metric applies "
150 "to a time interval that began at the startup of the "
151 "measured resource (i.e. the ManagedElement associated by "
152 "MetricDefForMe). On the corresponding BaseMetricValue "
153 "instances, TimeStamp specifies the end of the time "
154 "interval. If Duration is 0, this indicates that the "
155 "startup time of the measured resource is unknown. Else, "
156 "Duration specifies the duration between startup of the "
157 "resource and TimeStamp." ),
158 ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" },
159 Values { "Unknown", "Point", "Interval", "StartupInterval",
160 "DMTF Reserved", "Vendor Reserved" },
161 ModelCorrespondence { "CIM_BaseMetricValue.TimeStamp",
162 "CIM_BaseMetricValue.Duration" }]
163 uint16 TimeScope;
164
165 [Description (
166 "GatheringType indicates how the metric values are "
167 "gathered by the underlying instrumentation. This allows "
168 "the client application to choose the right metric for "
169 marek 1.1 "the purpose. \n"
170 "0=\"Unknown\": Indicates that the GatheringType is not "
171 "known. \n"
172 "2=\"OnChange\": Indicates that the CIM metric values get "
173 "updated immediately when the values inside of the "
174 "measured resource change. The values of OnChange metrics "
175 "truly reflect the current situation within the resource "
176 "at any time. An example is the number of logged on users "
177 "that gets updated immediately as users log on and off. \n"
178 "3=\"Periodic\": Indicates that the CIM metric values get "
179 "updated periodically. For instance, to a client "
180 "application, a metric value applying to the current time "
181 "will appear constant during each gathering interval, and "
182 "then jumps to the new value at the end of each gathering "
183 "interval. \n"
184 "4=\"OnRequest\": Indicates that the CIM metric value is "
185 "determined each time a client application reads it. The "
186 "values of OnRequest metrics truly return the current "
187 "situation within the resource if somebody asks for it. "
188 "However, they do not change \"unobserved\", and "
189 "therefore subscribing for value changes of OnRequest "
190 marek 1.1 "metrics is NOT RECOMMENDED." ),
191 ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" },
192 Values { "Unknown", "OnChange", "Periodic", "OnRequest",
193 "DMTF Reserved", "Vendor Reserved" }]
194 uint16 GatheringType;
195
196 [Description (
197 "Identifies the specific units of a value. The value of "
198 "this property shall be a legal value of the Programmatic "
199 "Units qualifier as defined in Appendix C.1 of DSP0004 "
200 "V2.4 or later." )]
201 string ProgrammaticUnits;
202
203
204 };
|