// ================================================================== // Title: Metrics MOF Specification 2.6 // Filename: CIM_Metrics26.MOF // Version 2.6.0 // Status: Final // Date: 06/04/2002 // =================================================================== // Copyright 2001-2002 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party’s // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: This Schema includes the object classes required to model // the CIM Metrics Schema, specifically the concepts of // UnitOfWork (executing and definitional), the metrics // associated with UnitsOfWork, and the relationships necessary // to associate defintions and metrics to an executing // UnitOfWork and to associate UnitsOfWork to // LogicalElements. // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // =================================================================== // CIM 2.6.0 (Final) Feb 15 2002 // CR636 - Replaced the Weak Qualifier from the association // StartedUoW that was removed in error in Version 2.5 // CR746- Add Version Qualifier to all classes with version 2.6.0 // per TC agreement to start versioning in 2.6 Final. // CIM 2.6.0 Preliminary and earlier change definitions (May 2001) // Fixed UnitOfWork.UoWDefId Propagated qualifier class name // Removed the Weak qualifier from the association StartedUoW // Fixed some descriptions // Removed Required qualifier from MetricDefinition.Name, // UnitOfWorkDefinition.Name, UnitOfWorkDefinition.Context // --> (the rest of this list were changes made 01 Feb 2000 but // --> not incorporated into DAP24.MOF due to an oversight) // Fixed pragma Locale string // Corrected subclassing of CIM_MetricDefinition and // CIM_UnitOfWork (now subclassed from CIM_ManagedElement) // Fixed grammatical and formatting errors in Descriptions // Provided information in Descriptions on why associations // were defined as Dependencies // Provided Descriptions where they were missing // Added MaxLen (16) to String Id in UnitOfWorkDefinition // and in MetricDefinition, to enforce the semantics of // the Description // Also added MaxLen (16) to UoWDefId, where the UnitOf // WorkDefinition Id property is propagated to UnitOfWork // Removed the Weak qualifier from the association, // UoWMetricDefinition, and also the Max (1) restriction // (the latter allows reuse of Metrics) // Removed Min (0) from the association, SubUoW, since this // is the default definition // ================================================================== // ================================================================== // Pragmas // ================================================================== #pragma Locale ("en_US") // ================================================================== // UnitOfWorkDefinition // ================================================================== [Version("2.6.0"), Description ( "A LogicalElement that describes units of work (e.g. " "transactions). This class represents the definitional " "components of a unit of work, and not the unit itself.") ] class CIM_UnitOfWorkDefinition : CIM_LogicalElement { [Override ("Name"), Description ( "The name of the Definition. This name does not have to " "be unique, but should be descriptive. It may " "contain blanks.") ] string Name; [Description ( "A free format string describing the context of the " "defined UnitOfWork. For example an 'Add Order' Unit could " "be defined in the context of a book ordering application, " "whereas another 'Add Order' UnitOfWork could be defined for " "a computer ordering application. It may contain blanks.") ] string Context; [Key, MaxLen (16), Description ( "A 16 byte value that uniquely identifies the UnitOfWork" "Definition. The use of OSF UUID/GUIDs is recommended.") ] string Id; }; // ================================================================== // MetricDefinition // ================================================================== [Version("2.6.0"), Description ( "The metrics that are associated with a UnitOfWork. These " "metrics usually describe some aspect of a UnitOfWork such " "as how much work was done, or the size of the UnitOfWork. " "For example, the size of a print job or the number of pages " "printed could be metrics of a 'print' UnitOfWork.") ] class CIM_MetricDefinition : CIM_ManagedElement { [Key, MaxLen (16), Description ( "A 16 byte value that uniquely identifies the Metric" "Definition. The use of OSF UUID/GUIDs is recommended.") ] string Id; [Description ( "The name of the Definition. This name does not have to " "be unique, but should be descriptive. It may " "contain blanks.") ] string Name; [Description ( "The Metric's data type. For example, \"boolean\" (value=1) " "or \"datetime\" (=3) may be specified."), 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 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 the Metric. Examples are " "Bytes, Packets, Jobs, Files, Milliseconds and Amps.") ] string Units; [Description ( "An enumerated value describing when the Metric may be " "considered valid. Some metrics are valid only at the " "beginning of a transaction (e.g., bytes to print), while " "the transaction is running (e.g., percent complete), or " "when the transaction is finished (e.g., pages printed). " "If a metric is valid at more than one of the enumerated " "values, such as both when the unit of work starts and " "when it stops, it is recommended to not use Validity."), ValueMap {"1", "2", "3"}, Values {"AtStart", "InMiddle", "AtStop"} ] uint16 Validity; }; // ================================================================== // UoWMetricDefinition // ================================================================== [Association, Version("2.6.0"), Description ( "An association that describes the Metrics related to a " "UnitOfWorkDefinition. This is a Dependency " "relationship since the MetricDefinition relies on the " "UnitOfWorkDefinition for context. At least one context must " "be defined for a MetricDefinition, hence the Min (1) " "qualifier is placed on the UnitOfWorkDefinition reference.") ] class CIM_UoWMetricDefinition : CIM_Dependency { [Override ("Antecedent"), Min (1), Description ( "The UnitOfWorkDefinition where the Metric applies.") ] CIM_UnitOfWorkDefinition REF Antecedent; [Override ("Dependent"), Description ( "The MetricDefinition for a particular UnitOfWork.") ] CIM_MetricDefinition REF Dependent; }; // ================================================================== // UnitOfWork // ================================================================== [Version("2.6.0"), Description ( "Each instance of UnitOfWork identifies a transaction that is " "either in-process or already completed. Because instances of " "'in-process' UnitsOfWork can be very short-lived and there can " "be a great number of active ones, use of this class as an " "instrumentation source for determining response time may be " "incorrect or inefficient, unless the rate and duration of the " "UnitsOfWork are known. The intended use is to respond to queries " "about currently active or recently completed UnitsOfWork. " "The length of time that a UnitOfWork instance exists after the " "UnitOfWork completes is not defined and should be assumed to be " "implementation-dependent. This class is weak to its " "definition (CIM_UnitOfWorkDefintion).") ] class CIM_UnitOfWork : CIM_ManagedElement { [Override ("Description"), Description ( "Since UnitOfWork is designed to be an extremely lightweight " "object, it is recommended that this property not be used. " "The Description specified for the instance's associated " "CIM_UnitOfWorkDefintion should apply.") ] string Description; [Key, Description ( "The identifier of the UnitOfWork, within the context of the " "UnitOfWorkDefinition.") ] sint64 Id; [Key, MaxLen (16), Propagated ("CIM_UnitOfWorkDefinition.Id"), Description ( "A 16 byte value that uniquely identifies the UnitOfWork" "Definition. The use of OSF UUID/GUIDs is recommended.") ] string UoWDefId; [Description ( "The name of the user who initiated the UnitOfWork. This " "may be a real user's login name or a logical name representing " "an application.") ] string UserName; [Description ("The time that the UnitOfWork was started.") ] datetime StartTime; [Description ( "The elapsed time since the UnitOfWork was started. " "Upon completion of the UnitOfWork, this property contains " "the total amount of time taken in processing the entire " "UnitOfWork.") ] datetime ElapsedTime; [Description ( "An enumeration identifing the status of the UnitOfWork. " "Most of the property values are self-explanatory. A few need " "additional text: \n" "3=\"Completed\" - Should be used to represent a 'completed' " "transaction whose status ('good', 'failed' or 'aborted') is " "unknown. \n" "6=\"Completed Aborted\" - Should be used when a UnitOfWork " "has completed but was not allowed to end normally. An example " "would be when the Stop or Back buttons are selected from a web " "browser, before a page is fully loaded."), ValueMap {"1", "2", "3", "4", "5", "6"}, Values {"Active", "Suspended", "Completed", "Completed Good", "Completed Failed", "Completed Aborted"} ] uint16 Status; }; // ================================================================== // UoWMetric // ================================================================== [Association, Version("2.6.0"), Description ( "This association ties a MetricDefinition to an instance of a " "UnitOfWork. Its primary purpose is to specify the value of " "the Metric for the instance of UnitOfWork. It is defined as a " "Dependency since the Metric value relies on the specific " "UnitOfWork for context.") ] class CIM_UoWMetric : CIM_Dependency { [Override ("Antecedent"), Description ( "The UnitOfWork whose Metric value is specified.") ] CIM_UnitOfWork REF Antecedent; [Override ("Dependent"), Description ( "The MetricDefinition for this particular UnitOfWork and " "value. Note that the MetricDefinition must be associated " "(via UoWMetricDefinition) to the same UnitOfWorkDefinition " "to which the UnitOfWork is weakly associated.") ] CIM_MetricDefinition REF Dependent; [Description ( "The value of the Metric for the referenced UnitOfWork. " "Note that the type of the data and other information are " "defined by the properties of MetricDefinition.") ] string Value; }; // ================================================================== // StartedUoW // ================================================================== [Association, Version("2.6.0"), Description ( "This association links a UnitOfWork (which is a 'started' " "transaction) to its Definition.") ] class CIM_StartedUoW : CIM_Dependency { [Override ("Antecedent"), Min (1), Max (1), Description ("The Definition object for the UnitOfWork.") ] CIM_UnitOfWorkDefinition REF Antecedent; [Override ("Dependent"), Weak, Description ( "An instance of a UnitOfWork that has started executing.") ] CIM_UnitOfWork REF Dependent; }; // ================================================================== // LogicalElementUnitOfWorkDef // ================================================================== [Association, Version("2.6.0"), Description ( "This association links a LogicalElement to the UnitsOfWork " "that it can perform. For example, a Printer Device may have " "associated UnitOfWorkDefinitions representing PrintJobs. " "This is a Dependency relationship since the Definitions are " "given context by the LogicalElement.") ] class CIM_LogicalElementUnitOfWorkDef : CIM_Dependency { [Override ("Antecedent"), Description ( "The LogicalElement that is providing the UnitOfWork.") ] CIM_LogicalElement REF Antecedent; [Override ("Dependent"), Description ( "The UnitOfWorkDefinition associated with the " "LogicalElement.") ] CIM_UnitOfWorkDefinition REF Dependent; }; // ================================================================== // SubUoWDef // ================================================================== [Association, Version("2.6.0"), Description ( "This association defines the sub-UnitsOfWork (the sub-" "transactions) for a particular UnitOfWorkDefinition. For " "example, an 'AddOrder' UnitOfWork could have sub-Units of " "'ValidateCustomer', 'ValidatePartNumber', 'UpdateDatabase', " "etc. This is a Dependency relationship since the sub-UnitsOf" "Work are put in context relative to the parent Unit. It is " "not an aggregation relationship - since (using another example) " "a 'DatabaseWrite' transaction is likely to be dependent upon a " "'DiskWrite', but the two transactions are separate concepts " "and one is not 'contained' by the other.") ] class CIM_SubUoWDef : CIM_Dependency { [Override ("Antecedent"), Description ("The parent UnitOfWorkDefinition.") ] CIM_UnitOfWorkDefinition REF Antecedent; [Override ("Dependent"), Description ("The sub-UnitOfWorkDefinition.") ] CIM_UnitOfWorkDefinition REF Dependent; }; // ================================================================== // LogicalElementPerformsUoW // ================================================================== [Association, Version("2.6.0"), Description ( "This association identifies a specific execution of a UnitOf" "Work with the specific LogicalElement that is performing/" "has performed it. Where the LogicalElementUnitOfWorkDef " "association describes what an Element can do, this relationship " "describes what a particular Element is doing or has done.") ] class CIM_LogicalElementPerformsUoW : CIM_Dependency { [Override ("Antecedent"), Description ( "The LogicalElement performing the UnitOfWork.") ] CIM_LogicalElement REF Antecedent; [Override ("Dependent"), Description ("The UnitOfWork being performed.") ] CIM_UnitOfWork REF Dependent; }; // ================================================================== // SubUoW // ================================================================== [Association, Version("2.6.0"), Description ( "Similar to the SubUoWDef association (which describes the " "relationship between definitional UnitsOfWork), this " "association identifies the executional UnitOfWork " "Dependencies. It associates executing/executed UnitsOfWork " "with their parent Units. In most cases, the SubUoW reflects " "the execution side of the relationship defined in SubUoWDef. " "However, there may be cases where the SubUoWDef is not defined, " "but for a particular UnitOfWork, the SubUoW relationship is " "valid. Therefore, it is not a requirement (but it is " "desirable) that there be a corresponding SubUoWDef for each " "instance of SubUoW.") ] class CIM_SubUoW : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The parent executing/executed UnitOfWork. On the execution " "side, it is expected that a sub-Unit is associated with only " "one parent UnitOfWork.") ] CIM_UnitOfWork REF Antecedent; [Override ("Dependent"), Description ( "The sub-UnitOfWork. On the execution side, it is expected " "that a sub-Unit is associated with only one parent " "UnitOfWork.") ] CIM_UnitOfWork REF Dependent; }; // =================================================================== // end of file // ===================================================================