NV::Rules::IMetric
-
class IMetric
Metric interface.
Represents a single, named metric. A metric can carry one value or multiple, if it is an instanced metric.
Public Types
-
using Description = std::string
-
enum class MetricSubtype
Metric subtype.
Indicates the subtype of the metric. Subtypes only apply to hardware metrics. Other metric types have subtype
None
in Python.Values:
-
enumerator NONE
-
enumerator PEAK_SUSTAINED
-
enumerator PEAK_SUSTAINED_ACTIVE
-
enumerator PEAK_SUSTAINED_ACTIVE_PER_SECOND
-
enumerator PEAK_SUSTAINED_ELAPSED
-
enumerator PEAK_SUSTAINED_ELAPSED_PER_SECOND
-
enumerator PEAK_SUSTAINED_FRAME
-
enumerator PEAK_SUSTAINED_FRAME_PER_SECOND
-
enumerator PEAK_SUSTAINED_REGION
-
enumerator PEAK_SUSTAINED_REGION_PER_SECOND
-
enumerator PER_CYCLE_ACTIVE
-
enumerator PER_CYCLE_ELAPSED
-
enumerator PER_CYCLE_IN_FRAME
-
enumerator PER_CYCLE_IN_REGION
-
enumerator PER_SECOND
-
enumerator PCT_OF_PEAK_SUSTAINED_ACTIVE
-
enumerator PCT_OF_PEAK_SUSTAINED_ELAPSED
-
enumerator PCT_OF_PEAK_SUSTAINED_FRAME
-
enumerator PCT_OF_PEAK_SUSTAINED_REGION
-
enumerator MAX_RATE
-
enumerator PCT
-
enumerator RATIO
-
enumerator NONE
-
enum class MetricType
Metric type.
Indicates the type of the metric. May take values
COUNTER
,RATIO
orTHROUGHPUT
for hardware metrics, andOTHER
for all other types (e.g. launch metrics, device attributes).Values:
-
enumerator OTHER
-
enumerator COUNTER
-
enumerator RATIO
-
enumerator THROUGHPUT
-
enumerator OTHER
-
enum class RollupOperation
Rollup Operation.
Indicates the type of operation that is used to accumulate multiple values of a given metric. May take values
AVG
,MAX
,MIN
andSUM
, as well asNone
, if no such operation is specified.Values:
-
enumerator NONE
-
enumerator AVG
-
enumerator MAX
-
enumerator MIN
-
enumerator SUM
-
enumerator NONE
-
using Unit = std::string
Public Functions
-
virtual double as_double() = 0
Get the metric value as double.
Get the metric value as double
-
virtual double as_double(size_t instance) = 0
Get a value from the metric instances as double.
Get the value of metric instance
instance
as double
-
virtual const char *as_string() = 0
Get the metric value as string.
Get the metric value as string
-
virtual const char *as_string(size_t instance) = 0
Get a value from the metric instances as string.
Get the value of metric instance
instance
as string
-
virtual uint64_t as_uint64() = 0
Get the metric value as 64bit integer.
Get the metric value as 64bit integer
-
virtual uint64_t as_uint64(size_t instance) = 0
Get a value from the metric instances as 64bit integer.
Get the value of metric instance
instance
as 64bit integer
-
virtual IMetric *correlation_ids() = 0
Get a metric object for this metric’s instance value’s correlation IDs.
Returns a new metric object representing the correlation IDs for the metric’s instance values. Use has_correlation_ids to check if this metric has correlation IDs for its instance values. Correlation IDs are used to associate instance values with the “instance” their value represents. In the returned new metric object, the correlation IDs are that object’s instance values.
-
virtual Description description() const = 0
Get the metric description.
Get a textual description of the metric
-
virtual bool has_correlation_ids() = 0
Check if the metric has correlation IDs.
If true, the metric has correlation IDs matching its instance values, which can be accessed using correlation_ids .
-
virtual bool has_value() = 0
Check if the metric has a non-instanced value.
Check if the metric has a non-instanced value. If true, the metric may still have instance values, too.
-
virtual bool has_value(ValueKind value_kind) = 0
Check if the metric has a non-instanced value of a specific kind.
Check if the metric has a value of a specific
value_kind
. If true, the metric may still have instance values, too.
-
virtual ValueKind kind(size_t instance) = 0
Get the metric value kind for an instance value.
Get the metric value kind for its instance value
instance
. num_instances can be used to check the total number of instance values.
-
virtual MetricSubtype metric_subtype() const = 0
Get the metric subtype.
Get the metric subtype
-
virtual MetricType metric_type() const = 0
Get the metric type.
Get the metric type
-
virtual const char *name() = 0
Get the metric name.
Get the metric name
-
virtual size_t num_instances() = 0
Get the number of instance values for this metric.
Get the number of instance values for this metric. Not all metrics have instance values. If a metric has instance values, it may also have correlation_ids matching these instance values.
-
virtual RollupOperation rollup_operation() const = 0
Get the type of rollup operation.
Get the type of rollup operation
-
inline virtual ~IMetric()
-
using Description = std::string