Versions Compared

Key

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

...

      /** Registers generic custom metric. */

<T extends Metric> T metric(T metric);

/**
* Custom metric manager. Allows to add own metrics in registers with names starting with "custom.".
*/
public interface IgniteMetrics {
/**
* Registers metric in register 'custom.' + {@code registryName}. Adds new register if absent.
*
* @return New {@code metric} if absent. Previous metric if exists with the same name.
*/
<T extends Metric> T metric(String registryName, T metric);

/** Removes custommetric metricfrom namedregister '"custom."' + {@code nameregistryName}'. */
void removeMetric(String registryName, String namemetricName);

/** @return custom Metric registry named '"custom." + {@code nameregistryName}'. */
ReadOnlyMetricRegistry registry(String registryName);

/** @return Removes registry named '"custom." + {@code registryName}'. */
ReadOnlyMetricRegistry removeRegistry(String registryName);name);



// Simple type metrics.

/**
* Registers {@link LongMetric} in register 'custom.' + {@code registryName}. Adds register if absent.
*
* @return New or previous long value setter.
*/
LongConsumer longMetric(String registryName, String namemetricName, @Nullable String description);

/**
* Registers a {@link DoubleMetric} in register 'custom.' + {@code registryName}. Adds register if absent.
*
* @return New or previous double value setter.
*/
DoubleConsumer doubleMetric(String registryName, String namemetricName, @Nullable String description);

/**
* Registers a {@link BooleanMetric} in register 'custom.' + {@code registryName}. Adds register if absent.
*
* @return New or previous boolean value setter.
*/
Consumer<Boolean> booleanMetric(String registryName, String namemetricName, @Nullable String description);

/**
* Registers a {@link ObjectMetric} in register 'custom.' + {@code registryName}. Adds register if absent.
*
* @return New or previous object setter.
*/
<T> Consumer<T> objectMetric(String registryName, String namemetricName, Class<T> valueType, @Nullable String description);


// Might be useful the gauges:

void doubleMetric(String name, DoubleSupplier /**
* Registers a {@link LongMetric} metric in register 'custom.' + {@code registryName} with long value supplier {@code valueSupplier}.
* Adds register if absent.
*
* @return {@code True} if metric was added. {@code False} if another meric already exists under the same name.
*/
boolean longMetric(String registryName, String metricName, LongSupplier valueSupplier, @Nullable String description);

/**
* Registers a {@link DoubleMetric} metric in register 'custom.' + {@code registryName} with double value supplier {@code valueSupplier}.
* Adds register if absent.
*
* @return {@code True} if metric was added. {@code False} if another meric already exists under the same name.
*/
void boolean booleanMetricdoubleMetric(String registryName, String namemetricName, BooleanSupplierDoubleSupplier valueSupplier, @Nullable String description);

/**
* Registers a {@link BooleanMetric} metric in register 'custom.' + {@code registryName} with boolean value supplier {@code valueSupplier}.
* Adds register if absent.
*
* @return {@code True} if metric was added. {@code False} if another meric already exists under the same name.
*/
<T> voidboolean objectMetricbooleanMetric(String nameregistryName, Class<T>String valueTypemetricName, Supplier<T>BooleanSupplier valueSupplier, @Nullable String description);

/**
* Registers a {@link ObjectMetric} metric in register 'custom.' + {@code registryName} with object value supplier {@code valueSupplier}.
* Adds register if absent.
*
* @return {@code True} if metric was added. {@code False} if another meric already exists under the same name.
*/
<T> voidboolean longMetricobjectMetric(String registryName, String name metricName, Class<T> valueType, LongSupplierSupplier<T> valueSupplier, @Nullable String description);
}

Risks and Assumptions

    Custom metrics can affect the performance.

...