Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

/**
* 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> {

...