(file) Return to Metrics_BaseMetric.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIMPrelim29

  1 karl  1.1 // ===================================================================
  2           // Title:  Base Metrics
  3           // $State: Preliminary $
  4           // $Date: 2004/07/02 22:50:19 $
  5           // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Metrics_BaseMetric.mof,v $
  6           // $Revision: 1.4 $
  7           // ===================================================================
  8           //#pragma inLine ("Includes/copyright.inc")
  9           // Copyright 1998-2004 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           //#pragma inLine
 45           // ===================================================================
 46           // Description:
 47           //    Additions to the V2.6 Metrics MOF to support a more generic
 48           //    approach.
 49           // 
 50           //    CIM users often desire metric objects that model designers have
 51           //    not
 52           //    provided. Furthermore, such needs vary from one management
 53           //    philosophy
 54           //    to another. Rather than fill more and more CIM models with
 55           //    standardized objects, the Metrics model supports externally
 56           //    defined
 57           //    expressions of existing objects, such as properties of
 58           //    CIM_StatisticalData and its subclasses. In addition, the
 59           //    classes described in this file enable users to define their own
 60           //    metrics at runtime (rather than at provider implementation time).
 61           //    A newly defined metric (aka CIM_BaseMetricDefinition) may be
 62           //    given a value by instantiating CIM_BaseMetricValue.
 63           //    Both CIM_BaseMetricDefinitions and CIM_BaseMetricValues may be
 64 karl  1.1 //    associated with a ManagedElement.
 65           // ==================================================================
 66           // CIM 2.9 (Preliminary)
 67           //     CR1296 - Add meta data properties to CIM_BaseMetricDefinition
 68           //              that describe the Metric type and add
 69           //              ModelCorrespondence to BaseMetricValue
 70           // CIM 2.8 (Final) - None
 71           // CIM 2.8 (Preliminary) - None
 72           // 
 73           // CIM 2.7.0 (Preliminary) 5 June 2002
 74           //     CR820 - Defined Base Metrics Classes and associations
 75           //     CR851 - Change the Description of BaseMetricValue.Duration
 76           //             to define the timestamp as the end of the duration
 77           // CIM 2.7.0 (Final) 17 March 2003
 78           //     CR987 - Remove experimental qualifier from:
 79           //              -CIM_BaseMetricDefinition
 80           //              -CIM_BaseMetricValue
 81           //              -CIM_MetricInstance
 82           //              -CIM_MetricDefForME
 83           //              -CIM_MetricForME
 84           // ==================================================================
 85 karl  1.1 
 86           #pragma Locale ("en_US")
 87           
 88           
 89           // ==================================================================
 90           // BaseMetricDefinition
 91           // ==================================================================
 92              [Version ( "2.8.1000" ), Description (
 93                  "CIM_BaseMetricDefinition represents the definitional aspects "
 94                  "of a metric, i.e., a definition template containing meta data "
 95                  "about a new metric. Since CIM_BaseMetricDefinition does not "
 96                  "capture metric instance information, it does not contain the "
 97                  "value of the metric. The associated class CIM_BaseMetricValue "
 98                  "holds the metric value and encapsulates its runtime behavior. "
 99                  "The purpose of CIM_BaseMetricDefinition is to provide a "
100                  "convenient mechanism for introducing a new metric definition "
101                  "at runtime and capturing its instance values in a separate "
102                  "class. This mechanism is targeted specifically at CIM users "
103                  "who would like to enhance existing CIM schemas by introducing "
104                  "domain-specific metrics that are not captured in the existing "
105                  "CIM schemas. In addition, vendors of managed resources may "
106 karl  1.1        "make use of this mechanism if a small subset of a potentially "
107                  "large and heterogeneous amount of performance-related data "
108                  "needs to be exposed, based on the context in which the data is "
109                  "captured. Additional meta data for a metric can be provided by "
110                  "subclassing from CIM_BaseMetricDefinition. The "
111                  "CIM_BaseMetricDefinition should be associated with the "
112                  "CIM_ManagedElement(s) to which it applies.")]
113           class CIM_BaseMetricDefinition : CIM_ManagedElement {
114           
115                 [Key, Description (
116                     "A string that uniquely identifies the metric definition. "
117                     "The use of OSF UUID/GUIDs is recommended.")]
118              string Id;
119           
120                 [Description (
121                     "The name of the metric. This name does not have to be "
122                     "unique, but should be descriptive and may contain blanks.")]
123              string Name;
124           
125                 [Description (
126                     "The data type of the metric. For example, \"boolean\" "
127 karl  1.1           "(value=1) or \"datetime\" (=3) may be specified. These "
128                     "types represent the datatypes defined for CIM."), 
129                  ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
130                     "11", "12", "13", "14" }, 
131                  Values { "boolean", "char16", "datetime", "real32", "real64",
132                     "sint16", "sint32", "sint64", "sint8", "string", "uint16",
133                     "uint32", "uint64", "uint8" }]
134              uint16 DataType;
135           
136                 [Description (
137                     "An enumerated value that describes the characteristics of "
138                     "the metric, for purposes of performing calculations. The "
139                     "property can take one of the following values: \n"
140                     "1=\"Non-calculable\" -> a string. Arithmetic makes no "
141                     "sense. \n"
142                     "2=\"Summable\" -> It is reasonable to sum this value over "
143                     "many instances of e.g., UnitOfWork, such as the number of "
144                     "files processed in a backup job. For example, if each "
145                     "backup job is a UnitOfWork, and each job backs up 27,000 "
146                     "files on average, then it makes sense to say that 100 "
147                     "backup jobs processed 2,700,000 files. \n"
148 karl  1.1           "3=\"Non-summable\" -> It does not make sense to sum this "
149                     "value over many instances of UnitOfWork. An example would "
150                     "be a metric that measures the queue length when a job "
151                     "arrives at a server. If each job is a UnitOfWork, and the "
152                     "average queue length when each job arrives is 33, it does "
153                     "not make sense to say that the queue length for 100 jobs is "
154                     "3300. It does make sense to say that the mean is 33."), 
155                  ValueMap { "1", "2", "3" }, 
156                  Values { "Non-calculable", "Summable", "Non-summable" }]
157              uint16 Calculable;
158           
159                 [Description (
160                     "Identifies the specific units of a value. Examples are "
161                     "Bytes, Packets, Jobs, Files, Milliseconds, and Amps.")]
162              string Units;
163           
164                 [Description (
165                     "Defines one or more strings that can be used to refine "
166                     "(break down) queries against the BaseMetricValues along a "
167                     "certain dimension. An example is a transaction name, "
168                     "allowing the break down of the total value for all "
169 karl  1.1           "transactions into a set of values, one for each transaction "
170                     "name. Other examples might be application system or user "
171                     "group name. The strings are free format and should be "
172                     "meaningful to the end users of the metric data. The strings "
173                     "indicate which break down dimensions are supported for this "
174                     "metric definition, by the underlying instrumentation.")]
175              string BreakdownDimensions[];
176           
177                 [Experimental, Description (
178                     "IsContinuous indicates whether or not the metric value is "
179                     "continuous or scalar. Performance metrics are an example of "
180                     "a linear metric. Examples of non-linear metrics include "
181                     "error codes or operational states. Continuous metrics can "
182                     "be compared using the \"greater than\" relation.")]
183              boolean IsContinuous;
184           
185                 [Experimental, Description (
186                     "ChangeType indicates how the metric value changes, in the "
187                     "form of typical combinations of finer grain attributes such "
188                     "as direction change, minimum and maximum values, and "
189                     "wrapping semantics. \n"
190 karl  1.1           "0=\"Unknown\": The metric designer did not qualify the "
191                     "ChangeType. \n"
192                     "2=\"N/A\": If the \"IsContinuous\" property is \"false\", "
193                     "ChangeType does not make sense and MUST be is set to "
194                     "\"N/A\". \n"
195                     "3=\"Counter\": The metric is a counter metric. These have "
196                     "non-negative integer values which increase monotonically "
197                     "until reaching the maximum representable number and then "
198                     "wrap around and start increasing from 0. Such counters, "
199                     "also known as rollover counters, can be used for instance "
200                     "to count the number of network errors or the number of "
201                     "transactions processed. The only way for a client "
202                     "application to keep track of wrap arounds is to retrieve "
203                     "the value of the counter in appropriately short intervals. "
204                     "\n4=\"Gauge\": The metric is a gauge metric. These have "
205                     "integer or float values that can increase and decrease "
206                     "arbitrarily. A gauge MUST NOT wrap when reaching the "
207                     "minimum or maximum representable number, instead, the value "
208                     "\"sticks\" at that number. Minimum or maximum values inside "
209                     "of the representable value range at which the metric value "
210                     "\"sticks\", may or may not be defined. \n"
211 karl  1.1           "Vendors may extend this property in the vendor reserved "
212                     "range."), 
213                  ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, 
214                  Values { "Unknown", "N/A", "Counter", "Gauge", "DMTF Reserved",
215                     "Vendor Reserved" }, 
216                  ModelCorrespondence { "CIM_BaseMetricDefinition.IsContinuous" }]
217              uint16 ChangeType;
218           
219                 [Experimental, Description (
220                     "TimeScope indicates the time scope to which the metric "
221                     "value applies. \n"
222                     "0=\"Unknown\" indicates the time scope was not qualified by "
223                     "the metric designer, or is unknown to the provider. \n"
224                     "2=\"Point\" indicates that the metric applies to a point in "
225                     "time. On the corresponding BaseMetricValue instances, "
226                     "TimeStamp specifies the point in time and Duration is "
227                     "always 0. \n"
228                     "3=\"Interval\" indicates that the metric applies to a time "
229                     "interval. On the corresponding BaseMetricValue instances, "
230                     "TimeStamp specifies the end of the time interval and "
231                     "Duration specifies its duration. \n"
232 karl  1.1           "4=\"StartupInterval\" indicates that the metric applies to "
233                     "a time interval that began at the startup of the measured "
234                     "resource (i.e. the ManagedElement associated by "
235                     "MetricDefForMe). On the corresponding BaseMetricValue "
236                     "instances, TimeStamp specifies the end of the time "
237                     "interval. If Duration is 0, this indicates that the startup "
238                     "time of the measured resource is unknown. Else, Duration "
239                     "specifies the duration between startup of the resource and "
240                     "TimeStamp."), 
241                  ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, 
242                  Values { "Unknown", "Point", "Interval", "StartupInterval",
243                     "DMTF Reserved", "Vendor Reserved" }, 
244                  ModelCorrespondence { "CIM_BaseMetricValue.TimeStamp",
245                     "CIM_BaseMetricValue.Duration" }]
246              uint16 TimeScope;
247           
248                 [Experimental, Description (
249                     "GatheringType indicates how the metric values are gathered "
250                     "by the underlying instrumentation. This allows the client "
251                     "application to choose the right metric for the purpose. \n"
252                     "0=\"Unknown\": Indicates that the GatheringType is not "
253 karl  1.1           "known. \n"
254                     "2=\"OnChange\": Indicates that the CIM metric values get "
255                     "updated immediately when the values inside of the measured "
256                     "resource change. The values of OnChange metrics truly "
257                     "reflect the current situation within the resource at any "
258                     "time. An example is the number of logged on users that gets "
259                     "updated immediately as users log on and off. \n"
260                     "3=\"Periodic\": Indicates that the CIM metric values get "
261                     "updated periodically. For instance, to a client "
262                     "application, a metric value applying to the current time "
263                     "will appear constant during each gathering interval, and "
264                     "then jumps to the new value at the end of each gathering "
265                     "interval. \n"
266                     "4=\"OnRequest\": Indicates that the CIM metric value is "
267                     "determined each time a client application reads it. The "
268                     "values of OnRequest metrics truly return the current "
269                     "situation within the resource if somebody asks for it. "
270                     "However, they do not change \"unobserved\", and therefore "
271                     "subscribing for value changes of OnRequest metrics is NOT "
272                     "RECOMMENDED."), 
273                  ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, 
274 karl  1.1        Values { "Unknown", "OnChange", "Periodic", "OnRequest",
275                     "DMTF Reserved", "Vendor Reserved" }]
276              uint16 GatheringType;
277           };
278           
279           
280           // ==================================================================
281           // BaseMetricValue
282           // ==================================================================
283              [Version ( "2.8.1000" ), Description (
284                  "Each CIM_BaseMetricValue object represents the instance value "
285                  "of a metric. Since the gathering of metric information can "
286                  "involve large quantities of information there may be many "
287                  "instances of this class. The use of this class as an "
288                  "instrumentation source may be inefficient unless the rate of "
289                  "metrics are known. The length of time a CIM_BaseMetricValue "
290                  "instance exists after the metric information is captured is "
291                  "not defined and is implementation dependent. \n"
292                  "Most metric data values change over time. There are two ways "
293                  "of mapping this into CIM_BaseMetricValue objects: The value "
294                  "for the next point in time may use the same object and just "
295 karl  1.1        "change its properties (such as the value or timestamp), or the "
296                  "existing objects remain unchanged and a new object is created "
297                  "for the new point in time. The first method is typically used "
298                  "for snapshot data and the second method for historical data. "
299                  "Which method is used, is indicated by the Volatile property.")]
300           class CIM_BaseMetricValue : CIM_ManagedElement {
301           
302                 [Key, Description (
303                     "A unique identifier of this instance of the metric value. "
304                     "This must be a globally unique identifier.")]
305              string InstanceId;
306           
307                 [Required, Description (
308                     "The key of the BaseMetricDefinition instance for this "
309                     "CIM_BaseMetricValue instance value."), 
310                  ModelCorrespondence { "CIM_BaseMetricDefinition.Id" }]
311              string MetricDefinitionId;
312           
313                 [Description (
314                     "A descriptive name for the element to which the metric "
315                     "value belongs (i.e., the measured element). This property "
316 karl  1.1           "is required by behavior if there is no association defined "
317                     "to a ManagedElement, but may be used in other cases to "
318                     "provide supplemental information. This allows metrics to be "
319                     "captured independently of any ManagedElement. An example is "
320                     "where a metric value belongs to a combination of elements, "
321                     "such as the input and output ports of the traffic in a "
322                     "switch. If there are multiple ManagedElements associated "
323                     "with the metric value, then usually there is one that "
324                     "naturally belongs to the metric value and that one should "
325                     "be used to create the supplemental information. The "
326                     "property is not meant to be used as a foreign key to search "
327                     "on the measured element. Instead, the association to the "
328                     "ManagedElement should be used.")]
329              string MeasuredElementName;
330           
331                 [Experimental, Description (
332                     "Identifies the time when the value of a metric instance is "
333                     "computed. Note that this is different from the time when "
334                     "the instance is created. For a given CIM_BaseMetricValue "
335                     "instance, the TimeStamp changes whenever a new measurement "
336                     "snapshot is taken if Volatile is true. A managmenet "
337 karl  1.1           "application may establish a time series of metric data by "
338                     "retrieving the instances of CIM_BaseMetricValue and sorting "
339                     "them according to their TimeStamp."), 
340                  ModelCorrespondence { "CIM_BaseMetricDefinition.TimeScope",
341                     "CIM_BaseMetricValue.Duration" }]
342              datetime TimeStamp;
343           
344                 [Experimental, Description (
345                     "Property that represents the time duration over which this "
346                     "metric value is valid. This property should not exist for "
347                     "timestamps that apply only to a point in time but should be "
348                     "defined for values that are considered valid for a certain "
349                     "time period (ex. sampling). If the \"Duration\" property "
350                     "exists and is nonNull, the TimeStamp is to be considered "
351                     "the end of the interval."), 
352                  ModelCorrespondence { "CIM_BaseMetricDefinition.TimeScope",
353                     "CIM_BaseMetricValue.TimeStamp" }]
354              datetime Duration;
355           
356                 [Required, Description (
357                     "The value of the metric represented as a string. Its "
358 karl  1.1           "original data type is specified in "
359                     "CIM_BaseMetricDefinition.")]
360              string MetricValue;
361           
362                 [Description (
363                     "If present, specifies one BreakdownDimension from the "
364                     "BreakdownDimensions array defined in the associated CIM_ "
365                     "BaseMetricDefinition. This is the dimension along which "
366                     "this set of metric values is broken down. For a description "
367                     "of the concept, see the class CIM_BaseMetricDefinition.")]
368              string BreakdownDimension;
369           
370                 [Description (
371                     "Defines a value of the BreakdownDimension property defined "
372                     "for this metric value instance. For instance, if the "
373                     "BreakdownDimension is \"TransactionName\", this property "
374                     "could name the actual transaction to which this particular "
375                     "metric value applies.")]
376              string BreakdownValue;
377           
378                 [Description (
379 karl  1.1           "If true, Volatile indicates that the value for the next "
380                     "point in time may use the same object and just change its "
381                     "properties (such as the value or timestamp). If false, the "
382                     "existing objects remain unchanged and a new object is "
383                     "created for the new point in time.")]
384              boolean Volatile;
385           };
386           
387           
388           // ===================================================================
389           // MetricInstance
390           // ===================================================================
391              [Association, Version ( "2.7.0" ), Description (
392                  "Weak association of metric value objects with their metric "
393                  "definition. This association ties an instance of "
394                  "CIM_BaseMetricValue to its CIM_BaseMetricDefinition; it is "
395                  "weak because the existence of a CIM_BaseMetricValue depends on "
396                  "the existence of its associated CIM_BaseMetricDefinition: An "
397                  "instance of CIM_BaseMetricValue must not exist without being "
398                  "associated to its corresponding CIM_BaseMetricDefinition.")]
399           class CIM_MetricInstance : CIM_Dependency {
400 karl  1.1 
401                 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
402                     "The CIM_BaseMetricDefinition for this particular "
403                     "CIM_BaseMetricValue.")]
404              CIM_BaseMetricDefinition REF Antecedent;
405           
406                 [Override ( "Dependent" ), Description (
407                     "A CIM_BaseMetricValue instance holding the Value.")]
408              CIM_BaseMetricValue REF Dependent;
409           };
410           
411           
412           // ===================================================================
413           // MetricDefForME
414           // ===================================================================
415              [Association, Version ( "2.7.0" ), Description (
416                  "This association ties a CIM_BaseMetricDefinition to a "
417                  "CIM_ManagedElement to define metrics for the latter. The "
418                  "metrics definition is given context by the ManagedElement, "
419                  "which is why the definition is dependent on the element.")]
420           class CIM_MetricDefForME : CIM_Dependency {
421 karl  1.1 
422                 [Override ( "Antecedent" ), Description (
423                     "The CIM_ManagedElement that can have metrics of this type "
424                     "associated with it.")]
425              CIM_ManagedElement REF Antecedent;
426           
427                 [Override ( "Dependent" ), Description (
428                     "A CIM_BaseMetricDefinition for a CIM_ManagedElement.")]
429              CIM_BaseMetricDefinition REF Dependent;
430           };
431           
432           
433           // ===================================================================
434           // MetricForME
435           // ===================================================================
436              [Association, Version ( "2.7.0" ), Description (
437                  "This association links a ManagedElement to the metric values "
438                  "being maintained for it.")]
439           class CIM_MetricForME : CIM_Dependency {
440           
441                 [Override ( "Antecedent" ), Description (
442 karl  1.1           "ManagedElement to which the metric values belong.")]
443              CIM_ManagedElement REF Antecedent;
444           
445                 [Override ( "Dependent" ), Description (
446                     "A metric value for the ManagedElement.")]
447              CIM_BaseMetricValue REF Dependent;
448           };
449           
450           
451           // ==================================================================
452           // end of file
453           // ==================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2