version 1.1.2.1, 2012/01/24 13:50:17
|
version 1.1.2.2, 2012/02/15 17:46:33
|
|
|
|
// Copyright (c) 2009 DMTF. All rights reserved. |
|
[Version ( "2.22.0" ), |
|
UMLPackagePath ( "CIM::Metrics::BaseMetric" ), |
|
Description ( |
|
"CIM_BaseMetricDefinition represents the definitional aspects " |
|
"of a metric, i.e., a definition template containing meta data " |
|
"about a new metric. Since CIM_BaseMetricDefinition does not " |
|
"capture metric instance information, it does not contain the " |
|
"value of the metric. The associated class CIM_BaseMetricValue " |
|
"holds the metric value and encapsulates its runtime behavior. " |
|
"The purpose of CIM_BaseMetricDefinition is to provide a " |
|
"convenient mechanism for introducing a new metric definition " |
|
"at runtime and capturing its instance values in a separate " |
|
"class. This mechanism is targeted specifically at CIM users " |
|
"who would like to enhance existing CIM schemas by introducing " |
|
"domain-specific metrics that are not captured in the existing " |
|
"CIM schemas. In addition, vendors of managed resources may " |
|
"make use of this mechanism if a small subset of a potentially " |
|
"large and heterogeneous amount of performance-related data " |
|
"needs to be exposed, based on the context in which the data is " |
|
"captured. Additional meta data for a metric can be provided by " |
|
"subclassing from CIM_BaseMetricDefinition. The " |
|
"CIM_BaseMetricDefinition should be associated with the " |
|
"CIM_ManagedElement(s) to which it applies." )] |
|
class CIM_BaseMetricDefinition : CIM_ManagedElement { |
|
|
|
[Key, Description ( |
|
"A string that uniquely identifies the metric definition. " |
|
"The use of OSF UUID/GUIDs is recommended." )] |
|
string Id; |
|
|
|
[Description ( |
|
"The name of the metric. This name does not have to be " |
|
"unique, but should be descriptive and may contain " |
|
"blanks." )] |
|
string Name; |
|
|
|
[Description ( |
|
"The data type of the metric. For example, \"boolean\" " |
|
"(value=1) or \"datetime\" (=3) may be specified. These " |
|
"types represent the datatypes defined for CIM." ), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", |
|
"11", "12", "13", "14" }, |
|
Values { "boolean", "char16", "datetime", "real32", "real64", |
|
"sint16", "sint32", "sint64", "sint8", "string", "uint16", |
|
"uint32", "uint64", "uint8" }] |
|
uint16 DataType; |
|
|
|
[Description ( |
|
"An enumerated value that describes the characteristics " |
|
"of the metric, for purposes of performing calculations. " |
|
"The property can take one of the following values: \n" |
|
"1=\"Non-calculable\" -> a string. Arithmetic makes no " |
|
"sense. \n" |
|
"2=\"Summable\" -> It is reasonable to sum this value " |
|
"over many instances of e.g., UnitOfWork, such as the " |
|
"number of files processed in a backup job. For example, " |
|
"if each backup job is a UnitOfWork, and each job backs " |
|
"up 27,000 files on average, then it makes sense to say " |
|
"that 100 backup jobs processed 2,700,000 files. \n" |
|
"3=\"Non-summable\" -> It does not make sense to sum this " |
|
"value over many instances of UnitOfWork. An example " |
|
"would be a metric that measures the queue length when a " |
|
"job arrives at a server. If each job is a UnitOfWork, " |
|
"and the average queue length when each job arrives is " |
|
"33, it does not make sense to say that the queue length " |
|
"for 100 jobs is 3300. It does make sense to say that the " |
|
"mean is 33." ), |
|
ValueMap { "1", "2", "3" }, |
|
Values { "Non-calculable", "Summable", "Non-summable" }] |
|
uint16 Calculable; |
|
|
|
[Description ( |
|
"Identifies the specific units of a value. Examples are " |
|
"Bytes, Packets, Jobs, Files, Milliseconds, and Amps." )] |
|
string Units; |
|
|
|
[Description ( |
|
"Defines one or more strings that can be used to refine " |
|
"(break down) queries against the BaseMetricValues along " |
|
"a certain dimension. An example is a transaction name, " |
|
"allowing the break down of the total value for all " |
|
"transactions into a set of values, one for each " |
|
"transaction name. Other examples might be application " |
|
"system or user group name. The strings are free format " |
|
"and should be meaningful to the end users of the metric " |
|
"data. The strings indicate which break down dimensions " |
|
"are supported for this metric definition, by the " |
|
"underlying instrumentation." )] |
|
string BreakdownDimensions[]; |
|
|
|
[Description ( |
|
"IsContinuous indicates whether or not the metric value " |
|
"is continuous or scalar. Performance metrics are an " |
|
"example of a linear metric. Examples of non-linear " |
|
"metrics include error codes or operational states. " |
|
"Continuous metrics can be compared using the \"greater " |
|
"than\" relation." )] |
|
boolean IsContinuous; |
|
|
|
[Description ( |
|
"ChangeType indicates how the metric value changes, in " |
|
"the form of typical combinations of finer grain " |
|
"attributes such as direction change, minimum and maximum " |
|
"values, and wrapping semantics. \n" |
|
"0=\"Unknown\": The metric designer did not qualify the " |
|
"ChangeType. \n" |
|
"2=\"N/A\": If the \"IsContinuous\" property is \"false\", " |
|
"ChangeType does not make sense and MUST be is set to " |
|
"\"N/A\". \n" |
|
"3=\"Counter\": The metric is a counter metric. These " |
|
"have non-negative integer values which increase " |
|
"monotonically until reaching the maximum representable " |
|
"number and then wrap around and start increasing from 0. " |
|
"Such counters, also known as rollover counters, can be " |
|
"used for instance to count the number of network errors " |
|
"or the number of transactions processed. The only way " |
|
"for a client application to keep track of wrap arounds " |
|
"is to retrieve the value of the counter in appropriately " |
|
"short intervals. \n" |
|
"4=\"Gauge\": The metric is a gauge metric. These have " |
|
"integer or float values that can increase and decrease " |
|
"arbitrarily. A gauge MUST NOT wrap when reaching the " |
|
"minimum or maximum representable number, instead, the " |
|
"value \"sticks\" at that number. Minimum or maximum " |
|
"values inside of the representable value range at which " |
|
"the metric value \"sticks\", may or may not be defined. \n" |
|
"Vendors may extend this property in the vendor reserved " |
|
"range." ), |
|
ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, |
|
Values { "Unknown", "N/A", "Counter", "Gauge", |
|
"DMTF Reserved", "Vendor Reserved" }, |
|
ModelCorrespondence { "CIM_BaseMetricDefinition.IsContinuous" }] |
|
uint16 ChangeType; |
|
|
|
[Description ( |
|
"TimeScope indicates the time scope to which the metric " |
|
"value applies. \n" |
|
"0=\"Unknown\" indicates the time scope was not qualified " |
|
"by the metric designer, or is unknown to the provider. \n" |
|
"2=\"Point\" indicates that the metric applies to a point " |
|
"in time. On the corresponding BaseMetricValue instances, " |
|
"TimeStamp specifies the point in time and Duration is " |
|
"always 0. \n" |
|
"3=\"Interval\" indicates that the metric applies to a " |
|
"time interval. On the corresponding BaseMetricValue " |
|
"instances, TimeStamp specifies the end of the time " |
|
"interval and Duration specifies its duration. \n" |
|
"4=\"StartupInterval\" indicates that the metric applies " |
|
"to a time interval that began at the startup of the " |
|
"measured resource (i.e. the ManagedElement associated by " |
|
"MetricDefForMe). On the corresponding BaseMetricValue " |
|
"instances, TimeStamp specifies the end of the time " |
|
"interval. If Duration is 0, this indicates that the " |
|
"startup time of the measured resource is unknown. Else, " |
|
"Duration specifies the duration between startup of the " |
|
"resource and TimeStamp." ), |
|
ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, |
|
Values { "Unknown", "Point", "Interval", "StartupInterval", |
|
"DMTF Reserved", "Vendor Reserved" }, |
|
ModelCorrespondence { "CIM_BaseMetricValue.TimeStamp", |
|
"CIM_BaseMetricValue.Duration" }] |
|
uint16 TimeScope; |
|
|
|
[Description ( |
|
"GatheringType indicates how the metric values are " |
|
"gathered by the underlying instrumentation. This allows " |
|
"the client application to choose the right metric for " |
|
"the purpose. \n" |
|
"0=\"Unknown\": Indicates that the GatheringType is not " |
|
"known. \n" |
|
"2=\"OnChange\": Indicates that the CIM metric values get " |
|
"updated immediately when the values inside of the " |
|
"measured resource change. The values of OnChange metrics " |
|
"truly reflect the current situation within the resource " |
|
"at any time. An example is the number of logged on users " |
|
"that gets updated immediately as users log on and off. \n" |
|
"3=\"Periodic\": Indicates that the CIM metric values get " |
|
"updated periodically. For instance, to a client " |
|
"application, a metric value applying to the current time " |
|
"will appear constant during each gathering interval, and " |
|
"then jumps to the new value at the end of each gathering " |
|
"interval. \n" |
|
"4=\"OnRequest\": Indicates that the CIM metric value is " |
|
"determined each time a client application reads it. The " |
|
"values of OnRequest metrics truly return the current " |
|
"situation within the resource if somebody asks for it. " |
|
"However, they do not change \"unobserved\", and " |
|
"therefore subscribing for value changes of OnRequest " |
|
"metrics is NOT RECOMMENDED." ), |
|
ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, |
|
Values { "Unknown", "OnChange", "Periodic", "OnRequest", |
|
"DMTF Reserved", "Vendor Reserved" }] |
|
uint16 GatheringType; |
|
|
|
[Description ( |
|
"Identifies the specific units of a value. The value of " |
|
"this property shall be a legal value of the Programmatic " |
|
"Units qualifier as defined in Appendix C.1 of DSP0004 " |
|
"V2.4 or later." )] |
|
string ProgrammaticUnits; |
|
|
|
|
|
}; |