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
.