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