1 tony 1.1 // ==================================================================
2 // Title: Metrics MOF Specification 2.8, Base Metrics
3 // Author: DMTF Application Working Group
4 // Filename: Metric28_BaseMetric.MOF
5 // Version 2.8
6 // Status: Final
7 // Date: Jan 26, 2004
8 // ===================================================================
9 // Copyright 1999-2003 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 tony 1.1 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 tony 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
44 // ===================================================================
45 // Description:
46 // Additions to the V2.6 Metrics MOF to support a more generic
47 // approach.
48 //
49 // CIM users often desire metric objects that model designers have
50 // not
51 // provided. Furthermore, such needs vary from one management
52 // philosophy
53 // to another. Rather than fill more and more CIM models with
54 // standardized objects, the Metrics model supports externally
55 // defined
56 // expressions of existing objects, such as properties of
57 // CIM_StatisticalData and its subclasses. In addition, the
58 // classes described in this file enable users to define their own
59 // metrics at runtime (rather than at provider implementation time).
60 // A newly defined metric (aka CIM_BaseMetricDefinition) may be
61 // given a value by instantiating CIM_BaseMetricValue.
62 // Both CIM_BaseMetricDefinitions and CIM_BaseMetricValues may be
63 // associated with a ManagedElement.
64 tony 1.1 // ==================================================================
65 // CIM 2.8 (Final) - None
66 // CIM 2.8 (Preliminary) - None
67 //
68 // CIM 2.7.0 (Preliminary) 5 June 2002
69 // CR820 - Defined Base Metrics Classes and associations
70 // CR851 - Change the Description of BaseMetricValue.Duration
71 // to define the timestamp as the end of the duration
72 // CIM 2.7.0 (Final) 17 March 2003
73 // CR987 - Remove experimental qualifier from:
74 // -CIM_BaseMetricDefinition
75 // -CIM_BaseMetricValue
76 // -CIM_MetricInstance
77 // -CIM_MetricDefForME
78 // -CIM_MetricForME
79 // ==================================================================
80
81 #pragma Locale ("en_US")
82
83
84 // ==================================================================
85 tony 1.1 // BaseMetricDefinition
86 // ==================================================================
87 [Version ( "2.7.0" ), Description (
88 "CIM_BaseMetricDefinition represents the definitional aspects "
89 "of a metric, i.e., a definition template containing meta data "
90 "about a new metric. Since CIM_BaseMetricDefinition does not "
91 "capture metric instance information, it does not contain the "
92 "value of the metric. The associated class CIM_BaseMetricValue "
93 "holds the metric value and encapsulates its runtime behavior. "
94 "The purpose of CIM_BaseMetricDefinition is to provide a "
95 "convenient mechanism for introducing a new metric definition "
96 "at runtime and capturing its instance values in a separate "
97 "class. This mechanism is targeted specifically at CIM users "
98 "who would like to enhance existing CIM schemas by introducing "
99 "domain-specific metrics that are not captured in the existing "
100 "CIM schemas. In addition, vendors of managed resources may "
101 "make use of this mechanism if a small subset of a potentially "
102 "large and heterogeneous amount of performance-related data "
103 "needs to be exposed, based on the context in which the data is "
104 "captured. Additional meta data for a metric can be provided by "
105 "subclassing from CIM_BaseMetricDefinition. The "
106 tony 1.1 "CIM_BaseMetricDefinition should be associated with the "
107 "CIM_ManagedElement(s) to which it applies.")]
108 class CIM_BaseMetricDefinition : CIM_ManagedElement {
109
110 [Key, Description (
111 "A string that uniquely identifies the metric definition. "
112 "The use of OSF UUID/GUIDs is recommended.")]
113 string Id;
114
115 [Description (
116 "The name of the metric. This name does not have to be "
117 "unique, but should be descriptive and may contain blanks.")]
118 string Name;
119
120 [Description (
121 "The data type of the metric. For example, \"boolean\" "
122 "(value=1) or \"datetime\" (=3) may be specified. These "
123 "types represent the datatypes defined for CIM."),
124 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
125 "11", "12", "13", "14" },
126 Values { "boolean", "char16", "datetime", "real32", "real64",
127 tony 1.1 "sint16", "sint32", "sint64", "sint8", "string", "uint16",
128 "uint32", "uint64", "uint8" }]
129 uint16 DataType;
130
131 [Description (
132 "An enumerated value that describes the characteristics of "
133 "the metric, for purposes of performing calculations. The "
134 "property can take one of the following values: \n"
135 "1=\"Non-calculable\" -> a string. Arithmetic makes no "
136 "sense. \n"
137 "2=\"Summable\" -> It is reasonable to sum this value over "
138 "many instances of e.g., UnitOfWork, such as the number of "
139 "files processed in a backup job. For example, if each "
140 "backup job is a UnitOfWork, and each job backs up 27,000 "
141 "files on average, then it makes sense to say that 100 "
142 "backup jobs processed 2,700,000 files. \n"
143 "3=\"Non-summable\" -> It does not make sense to sum this "
144 "value over many instances of UnitOfWork. An example would "
145 "be a metric that measures the queue length when a job "
146 "arrives at a server. If each job is a UnitOfWork, and the "
147 "average queue length when each job arrives is 33, it does "
148 tony 1.1 "not make sense to say that the queue length for 100 jobs is "
149 "3300. It does make sense to say that the mean is 33."),
150 ValueMap { "1", "2", "3" },
151 Values { "Non-calculable", "Summable", "Non-summable" }]
152 uint16 Calculable;
153
154 [Description (
155 "Identifies the specific units of a value. Examples are "
156 "Bytes, Packets, Jobs, Files, Milliseconds, and Amps.")]
157 string Units;
158
159 [Description (
160 "Defines one or more strings that can be used to refine "
161 "(break down) queries against the BaseMetricValues along a "
162 "certain dimension. An example is a transaction name, "
163 "allowing the break down of the total value for all "
164 "transactions into a set of values, one for each transaction "
165 "name. Other examples might be application system or user "
166 "group name. The strings are free format and should be "
167 "meaningful to the end users of the metric data. The strings "
168 "indicate which break down dimensions are supported for this "
169 tony 1.1 "metric definition, by the underlying instrumentation.")]
170 string BreakdownDimensions[];
171 };
172
173
174 // ==================================================================
175 // BaseMetricValue
176 // ==================================================================
177 [Version ( "2.7.0" ), Description (
178 "Each CIM_BaseMetricValue object represents the instance value "
179 "of a metric. Since the gathering of metric information can "
180 "involve large quantities of information there may be many "
181 "instances of this class. The use of this class as an "
182 "instrumentation source may be inefficient unless the rate of "
183 "metrics are known. The length of time a CIM_BaseMetricValue "
184 "instance exists after the metric information is captured is "
185 "not defined and is implementation dependent. \n"
186 "Most metric data values change over time. There are two ways "
187 "of mapping this into CIM_BaseMetricValue objects: The value "
188 "for the next point in time may use the same object and just "
189 "change its properties (such as the value or timestamp), or the "
190 tony 1.1 "existing objects remain unchanged and a new object is created "
191 "for the new point in time. The first method is typically used "
192 "for snapshot data and the second method for historical data. "
193 "Which method is used, is indicated by the Volatile property.")]
194 class CIM_BaseMetricValue : CIM_ManagedElement {
195
196 [Key, Description (
197 "A unique identifier of this instance of the metric value. "
198 "This must be a globally unique identifier.")]
199 string InstanceId;
200
201 [Required, Description (
202 "The key of the BaseMetricDefinition instance for this "
203 "CIM_BaseMetricValue instance value."),
204 ModelCorrespondence { "CIM_BaseMetricDefinition.Id" }]
205 string MetricDefinitionId;
206
207 [Description (
208 "A descriptive name for the element to which the metric "
209 "value belongs (i.e., the measured element). This property "
210 "is required by behavior if there is no association defined "
211 tony 1.1 "to a ManagedElement, but may be used in other cases to "
212 "provide supplemental information. This allows metrics to be "
213 "captured independently of any ManagedElement. An example is "
214 "where a metric value belongs to a combination of elements, "
215 "such as the input and output ports of the traffic in a "
216 "switch. If there are multiple ManagedElements associated "
217 "with the metric value, then usually there is one that "
218 "naturally belongs to the metric value and that one should "
219 "be used to create the supplemental information. The "
220 "property is not meant to be used as a foreign key to search "
221 "on the measured element. Instead, the association to the "
222 "ManagedElement should be used.")]
223 string MeasuredElementName;
224
225 [Description (
226 "Identifies the time when the value of a metric instance is "
227 "computed. Note that this is different from the time when "
228 "the instance is created. For a given CIM_BaseMetricValue "
229 "instance, the TimeStamp changes whenever a new measurement "
230 "snapshot is taken if Volatile is true. A managmenet "
231 "application may establish a time series of metric data by "
232 tony 1.1 "retrieving the instances of CIM_BaseMetricValue and sorting "
233 "them according to their TimeStamp.")]
234 datetime TimeStamp;
235
236 [Description (
237 "Property that represents the time duration over which this "
238 "metric value is valid. This property should not exist for "
239 "timestamps that apply only to a point in time but should be "
240 "defined for values that are considered valid for a certain "
241 "time period (ex. sampling). If the \"Duration\" property "
242 "exists and is nonNull, the TimeStamp is to be considered "
243 "the end of the interval.")]
244 datetime Duration;
245
246 [Required, Description (
247 "The value of the metric represented as a string. Its "
248 "original data type is specified in "
249 "CIM_BaseMetricDefinition.")]
250 string MetricValue;
251
252 [Description (
253 tony 1.1 "If present, specifies one BreakdownDimension from the "
254 "BreakdownDimensions array defined in the associated CIM_ "
255 "BaseMetricDefinition. This is the dimension along which "
256 "this set of metric values is broken down. For a description "
257 "of the concept, see the class CIM_BaseMetricDefinition.")]
258 string BreakdownDimension;
259
260 [Description (
261 "Defines a value of the BreakdownDimension property defined "
262 "for this metric value instance. For instance, if the "
263 "BreakdownDimension is \"TransactionName\", this property "
264 "could name the actual transaction to which this particular "
265 "metric value applies.")]
266 string BreakdownValue;
267
268 [Description (
269 "If true, Volatile indicates that the value for the next "
270 "point in time may use the same object and just change its "
271 "properties (such as the value or timestamp). If false, the "
272 "existing objects remain unchanged and a new object is "
273 "created for the new point in time.")]
274 tony 1.1 boolean Volatile;
275 };
276
277
278 // ===================================================================
279 // MetricInstance
280 // ===================================================================
281 [Association, Version ( "2.7.0" ), Description (
282 "Weak association of metric value objects with their metric "
283 "definition. This association ties an instance of "
284 "CIM_BaseMetricValue to its CIM_BaseMetricDefinition; it is "
285 "weak because the existence of a CIM_BaseMetricValue depends on "
286 "the existence of its associated CIM_BaseMetricDefinition: An "
287 "instance of CIM_BaseMetricValue must not exist without being "
288 "associated to its corresponding CIM_BaseMetricDefinition.")]
289 class CIM_MetricInstance : CIM_Dependency {
290
291 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
292 "The CIM_BaseMetricDefinition for this particular "
293 "CIM_BaseMetricValue.")]
294 CIM_BaseMetricDefinition REF Antecedent;
295 tony 1.1
296 [Override ( "Dependent" ), Description (
297 "A CIM_BaseMetricValue instance holding the Value.")]
298 CIM_BaseMetricValue REF Dependent;
299 };
300
301
302 // ===================================================================
303 // MetricDefForME
304 // ===================================================================
305 [Association, Version ( "2.7.0" ), Description (
306 "This association ties a CIM_BaseMetricDefinition to a "
307 "CIM_ManagedElement to define metrics for the latter. The "
308 "metrics definition is given context by the ManagedElement, "
309 "which is why the definition is dependent on the element.")]
310 class CIM_MetricDefForME : CIM_Dependency {
311
312 [Override ( "Antecedent" ), Description (
313 "The CIM_ManagedElement that can have metrics of this type "
314 "associated with it.")]
315 CIM_ManagedElement REF Antecedent;
316 tony 1.1
317 [Override ( "Dependent" ), Description (
318 "A CIM_BaseMetricDefinition for a CIM_ManagedElement.")]
319 CIM_BaseMetricDefinition REF Dependent;
320 };
321
322
323 // ===================================================================
324 // MetricForME
325 // ===================================================================
326 [Association, Version ( "2.7.0" ), Description (
327 "This association links a ManagedElement to the metric values "
328 "being maintained for it.")]
329 class CIM_MetricForME : CIM_Dependency {
330
331 [Override ( "Antecedent" ), Description (
332 "ManagedElement to which the metric values belong.")]
333 CIM_ManagedElement REF Antecedent;
334
335 [Override ( "Dependent" ), Description (
336 "A metric value for the ManagedElement.")]
337 tony 1.1 CIM_BaseMetricValue REF Dependent;
338 };
339
340
341 // ==================================================================
342 // end of file
343 // ==================================================================
|