The superclass for all the metric interfaces.
The common behavior of all metric subclasses is:
-
getDefinition() returns the descriptive metadata
(name, units, usage, ID) about the metric.
The returned object will be the appropriate subclass of
ArmMetricDefinition
-
Each subclass is also expected to implement
get() and
set() methods that
take and/or return data of the appropriate type for the subclass.
These methods are not defined in this interface because they have different
signatures, depending on the type of metric.
Objects that implement a subclass of
ArmMetric are used with
ArmTransactionWithMetrics and / or
ArmTranReportWithMetrics. They are bound via
ArmMetricGroup when the
ArmTransactionWithMetrics
or
ArmTranReportWithMetrics instance is created. Each
ArmMetric instance can be bound to any number of transaction
instances.
Setting the value of the
ArmMetric
instance effectively sets the value for all the transaction instances
to which it is bound. The value affects each
ArmTransactionWithMetrics instance the next time a
start(),
update(), or
stop() is
executed on the instance. The value affects each
ArmTranReportWithMetrics instance the next time a
report() is executed on the instance.
This class cannot be instantiated. Objects that implement a subclass of
ArmMetric are created using the
newArmMetric...()
methods of
ArmMetricFactory.