...
/**
* Allows to manage custom metrics and to obtain read-only internal metrics.
*
* Note: Names of custom metric registries are required to start with 'custom.' (lower case) and may have additional
* dot-separated qualifiers. The prefix 'custon' is automatically added if missed. For example, if provided custom registry name
* is "a.b.c.mname", it is automatically extended to "custom.a.b.c.mname".
*
* Any custom name or dot-separated name part can't have any spaces and must not be empty. Spaces are removed.
*
* Examples of custom metric registry names: "custom", "custom.admin", "custom.admin.sessions", "custom.processes", etc.
*
* @see ReadOnlyMetricRegistry
* @see IgniteMetricRegistry
*/
@IgniteExperimental
public interface IgniteMetrics extends Iterable<ReadOnlyMetricRegistry> {
/**
* Gets or creates custom metric registry named "custom." + {@code registryName}.
*
* @return {@link IgniteMetricRegistry} registry.
*/
IgniteMetricRegistry customRegistry(String registryName);
/**
* Gets or creates custom metric registry named "custom.".
*
* @return {@link IgniteMetricRegistry} registry.
*/
default IgniteMetricRegistry customRegistry() {
return customRegistry(null);
}
/**
* Gets metric registry including the Ignite's internal registries.
*
* @return Certain read-only metric registry.
*/
@Nullable ReadOnlyMetricRegistry findRegistry(String registryName);
/** */
void removeCustomRegistry(String registryName);
/** Removes custom metric registry with name '.custom'./
default void removeCustomRegistry() {
removeCustomRegistry(null);
}
}
...
/**
* Metric registry. Allows to get, add or remove metrics.
*
* @see IgniteMetrics
* @see ReadOnlyMetricRegistry
*/
@IgniteExperimental
public interface IgniteMetricRegistry extends ReadOnlyMetricRegistry {
/**
* Registers an int metric which value will be queried from the specified supplier.
*
* @return {@code True} if new metric was added. {@code False} is other metric already exists with the same name.
*/
boolean gauge(String name, IntSupplier supplier, @Nullable String desc);
/**
* Registers a long which value will be queried from the specified supplier.
*
* @return {@code True} if new metric was added. {@code False} is other metric already exists with the same name. */
*/
boolean gauge(String name, LongSupplier supplier, @Nullable String desc);
/**
* Registers a double metric which value will be queried from the specified supplier.
*
* @return {@code True} if new metric was added. {@code False} is other metric already exists with the same name.
*/
boolean gauge(String name, DoubleSupplier supplier, @Nullable String desc);
/**
* Registers an object metric which value will be queried from the specified supplier.
*
* @return {@code True} if new metric was added. {@code False} is other metric already exists with the same name.
*/
<T> boolean gauge(String name, Supplier<T> supplier, Class<T> type, @Nullable String desc);
/**
* Registers a boolean metric which value will be queried from the specified supplier.
/*
* @return {@code True} if new metric was added. {@code False} is other metric already exists with the same name.
*/
boolean gauge(String name, BooleanSupplier supplier, @Nullable String desc);
/**
* Registers an updatable int metric.
*
* @return New {@link IntValueMetric} or previous one with the same name. {@code Null} if previous metric exists and
* is not a {@link IntValueMetric}.
*/
@Nullable IntValueMetric intMetric(String name, @Nullable String desc);
/**
* Registers an updatable long metric.
*
* @return New {@link LongValueMetric} or previous one with the same name. {@code Null} if previous metric exists and
* is not a {@link LongValueMetric}.
*/
@Nullable LongValueMetric longMetric(String name, @Nullable String desc);
/**
* Registers an updatable long adder metric.
*
* @return New {@link LongValueMetric} or previous one with the same name. {@code Null} if previous metric exists and
* is not a {@link LongValueMetric}.
*/
@Nullable LongSumMetric longAdderMetric(String name, @Nullable String desc);
/**
* Registers an updatable double metric.desc);
/**
* @return New {@link DoubleValueMetric} or previous one with the same name. {@code Null} if previous metric exists and
* is not a {@link DoubleValueMetric}.
*/
@Nullable DoubleValueMetric doubleMetric(String name, @Nullable String desc);
/**
* Registers an updatable double metric.
*
* @param <T> Metric value type.
* @return New {@link CustomMetric} or previous one with the same name. {@code Null} if previous metric exists and
* is not a {@link CustomMetric}.
*/
@Nullable <T> AnyValueMetric<T> objectMetric(String name, Class<T> type, @Nullable String desc);
/**
* Removes metrics with the {@code name}.
*
* @param name Metric name..
*/
void remove(String name);
/** Resets all metrics of this metric registry. */
void reset();
}
...
/**
* Allows to manage custom metrics and to obtain read-only internal metrics.
* <p>
* Metrics are grouped into registries (groups). Every metric has full name which is the conjunction of registry name
* and the metric short name. Within a registry metric has only its own short name.
* <p>
* Note: Names of custom metric registries are required to start with 'custom.' (lower case) and may have additional
* dot-separated qualifiers. The prefix is automatically added if missed. For example, if provided custom registry name
* is "a.b.c.mname", it is automatically extended to "custom.a.b.c.mname".
* <p>
* Any custom name or dot-separated name part cannot have spaces and must not be empty. Spaces are removed.
* <p>
* Examples of custom metric registry names: "custom", "custom.admin", "custom.admin.sessions", "custom.processes", etc.
*
* @see ReadOnlyMetricRegistry
* @see IgniteMetricRegistry
*/
@IgniteExperimental
public interface IgniteMetrics extends Iterable<ReadOnlyMetricRegistry> {
...