IGNITE-12552: Move ReadOnlyMetricRegistry to public API. (#7269)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index cfc72b4..1865512 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -29,7 +29,7 @@
import org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
import org.apache.ignite.internal.processors.metric.impl.MetricUtils;
import org.apache.ignite.internal.util.collection.ImmutableIntSet;
@@ -176,19 +176,19 @@
private final AtomicLongMetric rebalanceClearingPartitions;
/** Get time. */
- private final HistogramMetric getTime;
+ private final HistogramMetricImpl getTime;
/** Put time. */
- private final HistogramMetric putTime;
+ private final HistogramMetricImpl putTime;
/** Remove time. */
- private final HistogramMetric rmvTime;
+ private final HistogramMetricImpl rmvTime;
/** Commit time. */
- private final HistogramMetric commitTime;
+ private final HistogramMetricImpl commitTime;
/** Rollback time. */
- private final HistogramMetric rollbackTime;
+ private final HistogramMetricImpl rollbackTime;
/** Cache metrics. */
@GridToStringExclude
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 0e4a5ff..9d9917a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -111,7 +111,7 @@
import org.apache.ignite.internal.processors.cluster.ChangeGlobalStateFinishMessage;
import org.apache.ignite.internal.processors.cluster.ChangeGlobalStateMessage;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.query.schema.SchemaNodeLeaveExchangeWorkerTask;
import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
import org.apache.ignite.internal.util.GridListSet;
@@ -278,10 +278,10 @@
private final List<PartitionsExchangeAware> exchangeAwareComps = new ArrayList<>();
/** Histogram of PME durations. */
- private volatile HistogramMetric durationHistogram;
+ private volatile HistogramMetricImpl durationHistogram;
/** Histogram of blocking PME durations. */
- private volatile HistogramMetric blockingDurationHistogram;
+ private volatile HistogramMetricImpl blockingDurationHistogram;
/** Delay before rebalancing code is start executing after exchange completion. For tests only. */
private volatile long rebalanceDelay;
@@ -2853,12 +2853,12 @@
}
/** @return Histogram of PME durations metric. */
- public HistogramMetric durationHistogram() {
+ public HistogramMetricImpl durationHistogram() {
return durationHistogram;
}
/** @return Histogram of blocking PME durations metric. */
- public HistogramMetric blockingDurationHistogram() {
+ public HistogramMetricImpl blockingDurationHistogram() {
return blockingDurationHistogram;
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionMetricsAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionMetricsAdapter.java
index 28a8882..e28c48e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionMetricsAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TransactionMetricsAdapter.java
@@ -32,7 +32,7 @@
import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.IntMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
import org.apache.ignite.internal.util.GridStringBuilder;
@@ -88,10 +88,10 @@
private LongAdderMetric totalTxUserTime;
/** Holds the reference to metric for system time histogram on node. */
- private HistogramMetric txSystemTimeHistogram;
+ private HistogramMetricImpl txSystemTimeHistogram;
/** Holds the reference to metric for user time histogram on node. */
- private HistogramMetric txUserTimeHistogram;
+ private HistogramMetricImpl txUserTimeHistogram;
/**
* @param ctx Kernal context.
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/GridMetricManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/GridMetricManager.java
index 339d0f8..8ad0a5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/GridMetricManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/GridMetricManager.java
@@ -46,7 +46,7 @@
import org.apache.ignite.internal.processors.metastorage.ReadableDistributedMetaStorage;
import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric;
import org.apache.ignite.internal.processors.metric.impl.DoubleMetricImpl;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
import org.apache.ignite.internal.util.StripedExecutor;
@@ -55,9 +55,11 @@
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.metric.HistogramMetric;
import org.apache.ignite.spi.metric.Metric;
import org.apache.ignite.spi.metric.MetricExporterSpi;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.thread.IgniteStripedThreadPoolExecutor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -69,12 +71,12 @@
import static org.apache.ignite.internal.util.IgniteUtils.notifyListeners;
/**
- * This manager should provide {@link ReadOnlyMetricRegistry} for each configured {@link MetricExporterSpi}.
+ * This manager should provide {@link ReadOnlyMetricManager} for each configured {@link MetricExporterSpi}.
*
* @see MetricExporterSpi
* @see MetricRegistry
*/
-public class GridMetricManager extends GridManagerAdapter<MetricExporterSpi> implements ReadOnlyMetricRegistry {
+public class GridMetricManager extends GridManagerAdapter<MetricExporterSpi> implements ReadOnlyMetricManager {
/** */
public static final String ACTIVE_COUNT_DESC = "Approximate number of threads that are actively executing tasks.";
@@ -197,13 +199,13 @@
public static final String HISTOGRAM_CFG_PREFIX = metricName("metrics", "histogram");
/** Registered metrics registries. */
- private final ConcurrentHashMap<String, MetricRegistry> registries = new ConcurrentHashMap<>();
+ private final ConcurrentHashMap<String, ReadOnlyMetricRegistry> registries = new ConcurrentHashMap<>();
/** Metric registry creation listeners. */
- private final List<Consumer<MetricRegistry>> metricRegCreationLsnrs = new CopyOnWriteArrayList<>();
+ private final List<Consumer<ReadOnlyMetricRegistry>> metricRegCreationLsnrs = new CopyOnWriteArrayList<>();
/** Metric registry remove listeners. */
- private final List<Consumer<MetricRegistry>> metricRegRemoveLsnrs = new CopyOnWriteArrayList<>();
+ private final List<Consumer<ReadOnlyMetricRegistry>> metricRegRemoveLsnrs = new CopyOnWriteArrayList<>();
/** Read-only metastorage. */
private volatile ReadableDistributedMetaStorage roMetastorage;
@@ -325,7 +327,7 @@
* @return Group of metrics.
*/
public MetricRegistry registry(String name) {
- return registries.computeIfAbsent(name, n -> {
+ return (MetricRegistry)registries.computeIfAbsent(name, n -> {
MetricRegistry mreg = new MetricRegistry(name,
mname -> readFromMetastorage(metricName(HITRATE_CFG_PREFIX, mname)),
mname -> readFromMetastorage(metricName(HISTOGRAM_CFG_PREFIX, mname)),
@@ -357,17 +359,17 @@
}
/** {@inheritDoc} */
- @NotNull @Override public Iterator<MetricRegistry> iterator() {
+ @NotNull @Override public Iterator<ReadOnlyMetricRegistry> iterator() {
return registries.values().iterator();
}
/** {@inheritDoc} */
- @Override public void addMetricRegistryCreationListener(Consumer<MetricRegistry> lsnr) {
+ @Override public void addMetricRegistryCreationListener(Consumer<ReadOnlyMetricRegistry> lsnr) {
metricRegCreationLsnrs.add(lsnr);
}
/** {@inheritDoc} */
- @Override public void addMetricRegistryRemoveListener(Consumer<MetricRegistry> lsnr) {
+ @Override public void addMetricRegistryRemoveListener(Consumer<ReadOnlyMetricRegistry> lsnr) {
metricRegRemoveLsnrs.add(lsnr);
}
@@ -377,7 +379,7 @@
* @param regName Metric registry name.
*/
public void remove(String regName) {
- MetricRegistry mreg = registries.remove(regName);
+ ReadOnlyMetricRegistry mreg = registries.remove(regName);
if (mreg == null)
return;
@@ -444,7 +446,7 @@
*
* @param name Metric name.
* @param rateTimeInterval New rateTimeInterval.
- * @see HistogramMetric#reset(long[])
+ * @see HistogramMetricImpl#reset(long[])
*/
private void onHitRateConfigChanged(String name, @Nullable Long rateTimeInterval) {
if (rateTimeInterval == null)
@@ -470,7 +472,7 @@
if (bounds == null)
return;
- HistogramMetric m = find(name, HistogramMetric.class);
+ HistogramMetricImpl m = find(name, HistogramMetricImpl.class);
if (m == null)
return;
@@ -488,7 +490,7 @@
T2<String, String> splitted = fromFullName(name);
- MetricRegistry mreg = registries.get(splitted.get1());
+ MetricRegistry mreg = (MetricRegistry)registries.get(splitted.get1());
if (mreg == null) {
if (log.isInfoEnabled())
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
index 5be8a9e..e4223c2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
@@ -32,7 +32,7 @@
import org.apache.ignite.internal.processors.metric.impl.BooleanMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.DoubleGauge;
import org.apache.ignite.internal.processors.metric.impl.DoubleMetricImpl;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
import org.apache.ignite.internal.processors.metric.impl.IntGauge;
import org.apache.ignite.internal.processors.metric.impl.IntMetricImpl;
@@ -44,6 +44,7 @@
import org.apache.ignite.spi.metric.BooleanMetric;
import org.apache.ignite.spi.metric.IntMetric;
import org.apache.ignite.spi.metric.Metric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -54,9 +55,9 @@
/**
* Metric registry.
*/
-public class MetricRegistry implements Iterable<Metric> {
+public class MetricRegistry implements ReadOnlyMetricRegistry {
/** Registry name. */
- private String grpName;
+ private String regName;
/** Logger. */
private IgniteLogger log;
@@ -71,28 +72,25 @@
private final Function<String, long[]> histogramCfgProvider;
/**
- * @param grpName Group name.
+ * @param regName Registry name.
* @param hitRateCfgProvider HitRate config provider.
* @param histogramCfgProvider Histogram config provider.
* @param log Logger.
*/
- public MetricRegistry(String grpName, Function<String, Long> hitRateCfgProvider,
+ public MetricRegistry(String regName, Function<String, Long> hitRateCfgProvider,
Function<String, long[]> histogramCfgProvider, IgniteLogger log) {
- this.grpName = grpName;
+ this.regName = regName;
this.log = log;
this.hitRateCfgProvider = hitRateCfgProvider;
this.histogramCfgProvider = histogramCfgProvider;
}
- /**
- * @param name Name of the metric.
- * @return Metric with specified name if exists. Null otherwise.
- */
- @Nullable public <M extends Metric> M findMetric(String name) {
+ /** {@inheritDoc} */
+ @Nullable @Override public <M extends Metric> M findMetric(String name) {
return (M)metrics.get(name);
}
- /** Resets state of this metric set. */
+ /** Resets state of this metric registry. */
public void reset() {
for (Metric m : metrics.values())
m.reset();
@@ -108,7 +106,7 @@
* @return {@link ObjectMetricImpl}
*/
public <T> ObjectMetricImpl<T> objectMetric(String name, Class<T> type, @Nullable String desc) {
- return addMetric(name, new ObjectMetricImpl<>(metricName(grpName, name), desc, type));
+ return addMetric(name, new ObjectMetricImpl<>(metricName(regName, name), desc, type));
}
/** {@inheritDoc} */
@@ -142,7 +140,7 @@
* @param desc Description.
*/
public void register(String name, BooleanSupplier supplier, @Nullable String desc) {
- addMetric(name, new BooleanGauge(metricName(grpName, name), desc, nonThrowableSupplier(supplier, log)));
+ addMetric(name, new BooleanGauge(metricName(regName, name), desc, nonThrowableSupplier(supplier, log)));
}
/**
@@ -153,7 +151,7 @@
* @param desc Description.
*/
public void register(String name, DoubleSupplier supplier, @Nullable String desc) {
- addMetric(name, new DoubleGauge(metricName(grpName, name), desc, nonThrowableSupplier(supplier, log)));
+ addMetric(name, new DoubleGauge(metricName(regName, name), desc, nonThrowableSupplier(supplier, log)));
}
/**
@@ -164,7 +162,7 @@
* @param desc Description.
*/
public void register(String name, IntSupplier supplier, @Nullable String desc) {
- addMetric(name, new IntGauge(metricName(grpName, name), desc, nonThrowableSupplier(supplier, log)));
+ addMetric(name, new IntGauge(metricName(regName, name), desc, nonThrowableSupplier(supplier, log)));
}
/**
@@ -176,7 +174,7 @@
* @return Metric of type {@link LongGauge}.
*/
public LongGauge register(String name, LongSupplier supplier, @Nullable String desc) {
- return addMetric(name, new LongGauge(metricName(grpName, name), desc, nonThrowableSupplier(supplier, log)));
+ return addMetric(name, new LongGauge(metricName(regName, name), desc, nonThrowableSupplier(supplier, log)));
}
/**
@@ -188,7 +186,7 @@
* @param desc Description.
*/
public <T> void register(String name, Supplier<T> supplier, Class<T> type, @Nullable String desc) {
- addMetric(name, new ObjectGauge<>(metricName(grpName, name), desc,
+ addMetric(name, new ObjectGauge<>(metricName(regName, name), desc,
nonThrowableSupplier(supplier, log), type));
}
@@ -201,7 +199,7 @@
* @return {@link DoubleMetricImpl}.
*/
public DoubleMetricImpl doubleMetric(String name, @Nullable String desc) {
- return addMetric(name, new DoubleMetricImpl(metricName(grpName, name), desc));
+ return addMetric(name, new DoubleMetricImpl(metricName(regName, name), desc));
}
/**
@@ -213,7 +211,7 @@
* @return {@link IntMetricImpl}.
*/
public IntMetricImpl intMetric(String name, @Nullable String desc) {
- return addMetric(name, new IntMetricImpl(metricName(grpName, name), desc));
+ return addMetric(name, new IntMetricImpl(metricName(regName, name), desc));
}
/**
@@ -225,7 +223,7 @@
* @return {@link AtomicLongMetric}.
*/
public AtomicLongMetric longMetric(String name, @Nullable String desc) {
- return addMetric(name, new AtomicLongMetric(metricName(grpName, name), desc));
+ return addMetric(name, new AtomicLongMetric(metricName(regName, name), desc));
}
/**
@@ -237,7 +235,7 @@
* @return {@link LongAdderMetric}.
*/
public LongAdderMetric longAdderMetric(String name, @Nullable String desc) {
- return addMetric(name, new LongAdderMetric(metricName(grpName, name), desc));
+ return addMetric(name, new LongAdderMetric(metricName(regName, name), desc));
}
/**
@@ -250,7 +248,7 @@
* @return {@link LongAdderWithDelegateMetric}.
*/
public LongAdderMetric longAdderMetric(String name, LongConsumer delegate, @Nullable String desc) {
- return addMetric(name, new LongAdderWithDelegateMetric(metricName(grpName, name), delegate, desc));
+ return addMetric(name, new LongAdderWithDelegateMetric(metricName(regName, name), delegate, desc));
}
/**
@@ -265,7 +263,7 @@
* @see HitRateMetric
*/
public HitRateMetric hitRateMetric(String name, @Nullable String desc, long rateTimeInterval, int size) {
- String fullName = metricName(grpName, name);
+ String fullName = metricName(regName, name);
HitRateMetric metric = addMetric(name, new HitRateMetric(fullName, desc, rateTimeInterval, size));
@@ -286,7 +284,7 @@
* @return {@link BooleanMetricImpl}
*/
public BooleanMetricImpl booleanMetric(String name, @Nullable String desc) {
- return addMetric(name, new BooleanMetricImpl(metricName(grpName, name), desc));
+ return addMetric(name, new BooleanMetricImpl(metricName(regName, name), desc));
}
/**
@@ -295,12 +293,12 @@
* @param name Name
* @param bounds Bounds of measurements.
* @param desc Description.
- * @return {@link HistogramMetric}
+ * @return {@link HistogramMetricImpl}
*/
- public HistogramMetric histogram(String name, long[] bounds, @Nullable String desc) {
- String fullName = metricName(grpName, name);
+ public HistogramMetricImpl histogram(String name, long[] bounds, @Nullable String desc) {
+ String fullName = metricName(regName, name);
- HistogramMetric metric = addMetric(name, new HistogramMetric(fullName, desc, bounds));
+ HistogramMetricImpl metric = addMetric(name, new HistogramMetricImpl(fullName, desc, bounds));
long[] cfgBounds = histogramCfgProvider.apply(fullName);
@@ -327,8 +325,8 @@
return metric;
}
- /** @return Group name. */
- public String name() {
- return grpName;
+ /** {@inheritDoc} */
+ @Override public String name() {
+ return regName;
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/PushMetricsExporterAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/PushMetricsExporterAdapter.java
index d850bf8..411b405 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/PushMetricsExporterAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/PushMetricsExporterAdapter.java
@@ -25,6 +25,7 @@
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.metric.MetricExporterSpi;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.jetbrains.annotations.Nullable;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -34,10 +35,10 @@
*/
public abstract class PushMetricsExporterAdapter extends IgniteSpiAdapter implements MetricExporterSpi {
/** Metric registry. */
- protected ReadOnlyMetricRegistry mreg;
+ protected ReadOnlyMetricManager mreg;
/** Metric filter. */
- protected @Nullable Predicate<MetricRegistry> filter;
+ protected @Nullable Predicate<ReadOnlyMetricRegistry> filter;
/** Export period. */
private long period;
@@ -93,12 +94,12 @@
}
/** {@inheritDoc} */
- @Override public void setMetricRegistry(ReadOnlyMetricRegistry mreg) {
+ @Override public void setMetricRegistry(ReadOnlyMetricManager mreg) {
this.mreg = mreg;
}
/** {@inheritDoc} */
- @Override public void setExportFilter(Predicate<MetricRegistry> filter) {
+ @Override public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter) {
this.filter = filter;
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetric.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetricImpl.java
similarity index 84%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetric.java
rename to modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetricImpl.java
index da9cae1..b0de0c5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetric.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HistogramMetricImpl.java
@@ -20,15 +20,13 @@
import java.util.concurrent.atomic.AtomicLongArray;
import org.apache.ignite.internal.processors.metric.AbstractMetric;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.spi.metric.ObjectMetric;
+import org.apache.ignite.spi.metric.HistogramMetric;
import org.jetbrains.annotations.Nullable;
/**
- * Histogram metric that will calculate counts of measurements that gets into each bounds interval.
- * Note, that {@link #value()} will return array length of {@code bounds.length + 1}.
- * Last element will contains count of measurements bigger then most right value of bounds.
+ * Histogram metric implementation.
*/
-public class HistogramMetric extends AbstractMetric implements ObjectMetric<long[]> {
+public class HistogramMetricImpl extends AbstractMetric implements HistogramMetric {
/** Holder of measurements. */
private volatile HistogramHolder holder;
@@ -37,7 +35,7 @@
* @param desc Description.
* @param bounds Bounds.
*/
- public HistogramMetric(String name, @Nullable String desc, long[] bounds) {
+ public HistogramMetricImpl(String name, @Nullable String desc, long[] bounds) {
super(name, desc);
holder = new HistogramHolder(bounds);
@@ -91,8 +89,8 @@
return res;
}
- /** @return Bounds of this histogram. */
- public long[] bounds() {
+ /** {@inheritDoc} */
+ @Override public long[] bounds() {
return holder.bounds;
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/MetricUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/MetricUtils.java
index 6be260e..9a4c0db 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/MetricUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/MetricUtils.java
@@ -21,6 +21,7 @@
import org.apache.ignite.internal.processors.metric.GridMetricManager;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.spi.metric.HistogramMetric;
import static org.apache.ignite.internal.processors.cache.CacheMetricsImpl.CACHE_METRICS;
@@ -38,26 +39,6 @@
public static final String INF = "inf";
/**
- * Example - metric registry name - "io.statistics.PRIMARY_KEY_IDX".
- * root = io - JMX tree root.
- * subName = statistics.PRIMARY_KEY_IDX - bean name.
- *
- * @param regName Metric registry name.
- * @return Parsed names parts.
- */
- public static MetricName parse(String regName) {
- int firstDot = regName.indexOf('.');
-
- if (firstDot == -1)
- return new MetricName(null, regName);
-
- String grp = regName.substring(0, firstDot);
- String beanName = regName.substring(firstDot + 1);
-
- return new MetricName(grp, beanName);
- }
-
- /**
* Builds metric name. Each parameter will separated by '.' char.
*
* @param names Metric name parts.
@@ -188,39 +169,4 @@
return names;
}
-
- /**
- * Parsed metric registry name parts.
- *
- * Example - metric registry name - "io.statistics.PRIMARY_KEY_IDX".
- * root = io - JMX tree root.
- * subName = statistics.PRIMARY_KEY_IDX - bean name.
- */
- public static class MetricName {
- /** JMX group name. */
- private String root;
-
- /** JMX bean name. */
- private String subName;
-
- /** */
- MetricName(String root, String subName) {
- this.root = root;
- this.subName = subName;
- }
-
- /**
- * @return JMX group name.
- */
- public String root() {
- return root;
- }
-
- /**
- * @return JMX bean name.
- */
- public String subName() {
- return subName;
- }
- }
}
diff --git a/modules/core/src/main/java/org/apache/ignite/mxbean/MetricsMxBean.java b/modules/core/src/main/java/org/apache/ignite/mxbean/MetricsMxBean.java
index 52eb844..803546b 100644
--- a/modules/core/src/main/java/org/apache/ignite/mxbean/MetricsMxBean.java
+++ b/modules/core/src/main/java/org/apache/ignite/mxbean/MetricsMxBean.java
@@ -18,8 +18,8 @@
package org.apache.ignite.mxbean;
import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
+import org.apache.ignite.spi.metric.HistogramMetric;
/**
* Metrics MXBean interface.
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.java
index 4fdfa13..504cbb4d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationMetricsListener.java
@@ -31,6 +31,7 @@
import org.apache.ignite.plugin.extensions.communication.Message;
import org.apache.ignite.spi.metric.LongMetric;
import org.apache.ignite.spi.metric.Metric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.SEPARATOR;
import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
@@ -60,7 +61,7 @@
private final GridMetricManager mmgr;
/** Metrics registry. */
- private final MetricRegistry mreg;
+ private final org.apache.ignite.internal.processors.metric.MetricRegistry mreg;
/** All registered metrics. */
private final Set<ThreadMetrics> allMetrics = Collections.newSetFromMap(new ConcurrentHashMap<>());
@@ -138,9 +139,9 @@
if (!mreg.name().startsWith(COMMUNICATION_METRICS_GROUP_NAME + SEPARATOR))
return;
- mreg.longAdderMetric(SENT_MESSAGES_BY_NODE_ID_METRIC_NAME, SENT_MESSAGES_BY_NODE_ID_METRIC_DESC);
+ ((MetricRegistry)mreg).longAdderMetric(SENT_MESSAGES_BY_NODE_ID_METRIC_NAME, SENT_MESSAGES_BY_NODE_ID_METRIC_DESC);
- mreg.longAdderMetric(RECEIVED_MESSAGES_BY_NODE_ID_METRIC_NAME, RECEIVED_MESSAGES_BY_NODE_ID_METRIC_DESC);
+ ((MetricRegistry)mreg).longAdderMetric(RECEIVED_MESSAGES_BY_NODE_ID_METRIC_NAME, RECEIVED_MESSAGES_BY_NODE_ID_METRIC_DESC);
});
}
@@ -297,7 +298,7 @@
String mregPrefix = COMMUNICATION_METRICS_GROUP_NAME + SEPARATOR;
- for (MetricRegistry mreg : mmgr) {
+ for (ReadOnlyMetricRegistry mreg : mmgr) {
if (mreg.name().startsWith(mregPrefix)) {
String nodeIdStr = mreg.name().substring(mregPrefix.length());
@@ -327,7 +328,7 @@
metric.reset();
}
- for (MetricRegistry mreg : mmgr) {
+ for (ReadOnlyMetricRegistry mreg : mmgr) {
if (mreg.name().startsWith(COMMUNICATION_METRICS_GROUP_NAME + SEPARATOR)) {
mreg.findMetric(SENT_MESSAGES_BY_NODE_ID_METRIC_NAME).reset();
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/HistogramMetric.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/HistogramMetric.java
new file mode 100644
index 0000000..3570b4d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/HistogramMetric.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.metric;
+
+/**
+ * Histogram metric calculates counts of measurements that gets into each bounds interval.
+ * Note, that {@link #value()} will return array length of {@code bounds.length + 1}.
+ * Last element will contains count of measurements bigger then most right value of bounds.
+ */
+public interface HistogramMetric extends ObjectMetric<long[]> {
+ /** @return Bounds of this histogram. */
+ public long[] bounds();
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
index 1783984..de7ba58 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
@@ -18,7 +18,6 @@
package org.apache.ignite.spi.metric;
import java.util.function.Predicate;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.spi.IgniteSpi;
import org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi;
@@ -30,6 +29,7 @@
* So after start SPI should respond to some incoming request.
* HTTP servlet or JMX bean are good examples of expected implementations.
*
+ * @see ReadOnlyMetricManager
* @see ReadOnlyMetricRegistry
* @see Metric
* @see BooleanMetric
@@ -46,7 +46,7 @@
*
* @param registry Metric registry.
*/
- public void setMetricRegistry(ReadOnlyMetricRegistry registry);
+ public void setMetricRegistry(ReadOnlyMetricManager registry);
/**
* Sets export filter.
@@ -54,5 +54,5 @@
*
* @param filter Filter.
*/
- public void setExportFilter(Predicate<MetricRegistry> filter);
+ public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricManager.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricManager.java
new file mode 100644
index 0000000..a5cbb02
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricManager.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.metric;
+
+import java.util.function.Consumer;
+
+/**
+ * Read only metric manager.
+ */
+public interface ReadOnlyMetricManager extends Iterable<ReadOnlyMetricRegistry> {
+ /**
+ * Adds listener of metrics registry creation events.
+ *
+ * @param lsnr Listener.
+ */
+ public void addMetricRegistryCreationListener(Consumer<ReadOnlyMetricRegistry> lsnr);
+
+ /**
+ * Adds listener of metrics registry remove events.
+ *
+ * @param lsnr Listener.
+ */
+ public void addMetricRegistryRemoveListener(Consumer<ReadOnlyMetricRegistry> lsnr);
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricRegistry.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricRegistry.java
index 6fffc72..377f0c9 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricRegistry.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/ReadOnlyMetricRegistry.java
@@ -17,24 +17,18 @@
package org.apache.ignite.spi.metric;
-import java.util.function.Consumer;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
+import org.jetbrains.annotations.Nullable;
/**
* Read only metric registry.
*/
-public interface ReadOnlyMetricRegistry extends Iterable<MetricRegistry> {
- /**
- * Adds listener of metrics registry creation events.
- *
- * @param lsnr Listener.
- */
- public void addMetricRegistryCreationListener(Consumer<MetricRegistry> lsnr);
+public interface ReadOnlyMetricRegistry extends Iterable<Metric> {
+ /** @return Registry name. */
+ public String name();
/**
- * Adds listener of metrics registry remove events.
- *
- * @param lsnr Listener.
+ * @param name Name of the metric.
+ * @return Metric with specified name if exists. Null otherwise.
*/
- public void addMetricRegistryRemoveListener(Consumer<MetricRegistry> lsnr);
+ @Nullable public <M extends Metric> M findMetric(String name);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
index 2391f23..f416616 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
@@ -25,16 +25,14 @@
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import org.apache.ignite.Ignite;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.MetricUtils;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.spi.IgniteSpiAdapter;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.metric.MetricExporterSpi;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.jetbrains.annotations.Nullable;
-import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.parse;
import static org.apache.ignite.internal.util.IgniteUtils.makeMBeanName;
/**
@@ -42,10 +40,10 @@
*/
public class JmxMetricExporterSpi extends IgniteSpiAdapter implements MetricExporterSpi {
/** Metric registry. */
- private ReadOnlyMetricRegistry mreg;
+ private ReadOnlyMetricManager mreg;
/** Metric filter. */
- private @Nullable Predicate<MetricRegistry> filter;
+ private @Nullable Predicate<ReadOnlyMetricRegistry> filter;
/** Registered beans. */
private final List<ObjectName> mBeans = new ArrayList<>();
@@ -63,7 +61,7 @@
*
* @param mreg Metric registry.
*/
- private void register(MetricRegistry mreg) {
+ private void register(ReadOnlyMetricRegistry mreg) {
if (filter != null && !filter.test(mreg)) {
if (log.isDebugEnabled())
U.debug(log, "Metric registry filtered and will not be registered.[registry=" + mreg.name() + ']');
@@ -73,7 +71,7 @@
else if (log.isDebugEnabled())
log.debug("Found new metric registry [name=" + mreg.name() + ']');
- MetricUtils.MetricName n = parse(mreg.name());
+ MetricName n = parse(mreg.name());
try {
MetricRegistryMBean mregBean = new MetricRegistryMBean(mreg);
@@ -101,8 +99,8 @@
*
* @param mreg Metric registry.
*/
- private void unregister(MetricRegistry mreg) {
- MetricUtils.MetricName n = parse(mreg.name());
+ private void unregister(ReadOnlyMetricRegistry mreg) {
+ MetricName n = parse(mreg.name());
try {
ObjectName mbeanName = makeMBeanName(igniteInstanceName, n.root(), n.subName());
@@ -144,12 +142,67 @@
}
/** {@inheritDoc} */
- @Override public void setMetricRegistry(ReadOnlyMetricRegistry reg) {
+ @Override public void setMetricRegistry(ReadOnlyMetricManager reg) {
this.mreg = reg;
}
/** {@inheritDoc} */
- @Override public void setExportFilter(Predicate<MetricRegistry> filter) {
+ @Override public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter) {
this.filter = filter;
}
+
+ /**
+ * Example - metric registry name - "io.statistics.PRIMARY_KEY_IDX".
+ * root = io - JMX tree root.
+ * subName = statistics.PRIMARY_KEY_IDX - bean name.
+ *
+ * @param regName Metric registry name.
+ * @return Parsed names parts.
+ */
+ private MetricName parse(String regName) {
+ int firstDot = regName.indexOf('.');
+
+ if (firstDot == -1)
+ return new MetricName(null, regName);
+
+ String grp = regName.substring(0, firstDot);
+ String beanName = regName.substring(firstDot + 1);
+
+ return new MetricName(grp, beanName);
+ }
+
+ /**
+ * Parsed metric registry name parts.
+ *
+ * Example - metric registry name - "io.statistics.PRIMARY_KEY_IDX".
+ * root = io - JMX tree root.
+ * subName = statistics.PRIMARY_KEY_IDX - bean name.
+ */
+ private class MetricName {
+ /** JMX group name. */
+ private String root;
+
+ /** JMX bean name. */
+ private String subName;
+
+ /** */
+ MetricName(String root, String subName) {
+ this.root = root;
+ this.subName = subName;
+ }
+
+ /**
+ * @return JMX group name.
+ */
+ public String root() {
+ return root;
+ }
+
+ /**
+ * @return JMX bean name.
+ */
+ public String subName() {
+ return subName;
+ }
+ }
}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/MetricRegistryMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/MetricRegistryMBean.java
index 8c3cb12..5df6d30 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/MetricRegistryMBean.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/MetricRegistryMBean.java
@@ -25,16 +25,16 @@
import java.util.Scanner;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
import org.apache.ignite.internal.processors.metric.impl.MetricUtils;
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.spi.metric.BooleanMetric;
import org.apache.ignite.spi.metric.DoubleMetric;
+import org.apache.ignite.spi.metric.HistogramMetric;
import org.apache.ignite.spi.metric.IntMetric;
import org.apache.ignite.spi.metric.LongMetric;
import org.apache.ignite.spi.metric.Metric;
import org.apache.ignite.spi.metric.ObjectMetric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import static java.util.Arrays.binarySearch;
@@ -46,7 +46,7 @@
*/
public class MetricRegistryMBean extends ReadOnlyDynamicMBean {
/** Metric registry. */
- MetricRegistry mreg;
+ ReadOnlyMetricRegistry mreg;
/** Cached histogram metrics intervals names. */
private final Map<String, T2<long[], String[]>> histogramNames = new HashMap<>();
@@ -54,7 +54,7 @@
/**
* @param mreg Metric registry.
*/
- public MetricRegistryMBean(MetricRegistry mreg) {
+ public MetricRegistryMBean(ReadOnlyMetricRegistry mreg) {
this.mreg = mreg;
}
@@ -119,7 +119,7 @@
});
return new MBeanInfo(
- ReadOnlyMetricRegistry.class.getName(),
+ ReadOnlyMetricManager.class.getName(),
mreg.name(),
attributes.toArray(new MBeanAttributeInfo[attributes.size()]),
null,
@@ -154,7 +154,7 @@
* @return Specific bucket value or {@code null} if not found.
* @see MetricUtils#histogramBucketNames(HistogramMetric, Map)
*/
- public static Long searchHistogram(String name, MetricRegistry mreg) {
+ public static Long searchHistogram(String name, ReadOnlyMetricRegistry mreg) {
Scanner sc = new Scanner(name).useDelimiter("_");
if (!sc.hasNext())
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/noop/NoopMetricExporterSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/noop/NoopMetricExporterSpi.java
index 68427e5..e296f74 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/noop/NoopMetricExporterSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/noop/NoopMetricExporterSpi.java
@@ -18,11 +18,11 @@
package org.apache.ignite.spi.metric.noop;
import java.util.function.Predicate;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.spi.IgniteSpiAdapter;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.IgniteSpiNoop;
import org.apache.ignite.spi.metric.MetricExporterSpi;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.jetbrains.annotations.Nullable;
@@ -42,12 +42,12 @@
}
/** {@inheritDoc} */
- @Override public void setMetricRegistry(ReadOnlyMetricRegistry registry) {
+ @Override public void setMetricRegistry(ReadOnlyMetricManager registry) {
// No-op.
}
/** {@inheritDoc} */
- @Override public void setExportFilter(Predicate<MetricRegistry> filter) {
+ @Override public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter) {
// No-op.
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/systemview/ReadOnlySystemViewRegistry.java b/modules/core/src/main/java/org/apache/ignite/spi/systemview/ReadOnlySystemViewRegistry.java
index 5e06a36..878d775 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/systemview/ReadOnlySystemViewRegistry.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/systemview/ReadOnlySystemViewRegistry.java
@@ -18,14 +18,14 @@
package org.apache.ignite.spi.systemview;
import java.util.function.Consumer;
-import org.apache.ignite.internal.processors.metric.GridMetricManager;
+import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
import org.apache.ignite.spi.metric.MetricExporterSpi;
import org.apache.ignite.spi.systemview.view.SystemView;
/**
* Read only system view registry.
*
- * @see GridMetricManager
+ * @see GridSystemViewManager
* @see SystemView
* @see MetricExporterSpi
*/
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsCacheSelfTest.java
index 0d300d0..43f8c79 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsCacheSelfTest.java
@@ -35,6 +35,7 @@
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.spi.metric.LongMetric;
import org.apache.ignite.spi.metric.Metric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
@@ -258,7 +259,7 @@
GridMetricManager mmgr = ignite.context().metric();
- Stream<MetricRegistry> grpsStream = StreamSupport.stream(mmgr.spliterator(), false)
+ Stream<ReadOnlyMetricRegistry> grpsStream = StreamSupport.stream(mmgr.spliterator(), false)
.filter(grp -> grp.name().startsWith(statType.metricGroupName()));
return grpsStream.flatMap(grp -> StreamSupport.stream(grp.spliterator(), false))
@@ -299,7 +300,7 @@
/**
* @param mmgr Metric manager.
* @param type Staticstics type.
- * @param id Metric set id.
+ * @param id Metric registry id.
* @return Logical reads count.
*/
public static long logicalReads(GridMetricManager mmgr, IoStatisticsType type, String id) {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsMetricsLocalMXBeanImplSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsMetricsLocalMXBeanImplSelfTest.java
index c32c567..9f8a324 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsMetricsLocalMXBeanImplSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/IoStatisticsMetricsLocalMXBeanImplSelfTest.java
@@ -26,6 +26,7 @@
import org.apache.ignite.internal.processors.metric.GridMetricManager;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.spi.metric.LongMetric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
@@ -154,7 +155,7 @@
GridMetricManager mmgr = ignite.context().metric();
StreamSupport.stream(mmgr.spliterator(), false)
- .map(MetricRegistry::name)
+ .map(ReadOnlyMetricRegistry::name)
.filter(name -> {
for (IoStatisticsType type : IoStatisticsType.values()) {
if (name.startsWith(type.metricGroupName()))
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
index d32a2ba..49cb8fa 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
@@ -71,7 +71,7 @@
import org.apache.ignite.internal.metric.SystemViewSelfTest.TestRunnable;
import org.apache.ignite.internal.metric.SystemViewSelfTest.TestTransformer;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.odbc.jdbc.JdbcConnectionContext;
import org.apache.ignite.internal.processors.service.DummyService;
import org.apache.ignite.internal.util.StripedExecutor;
@@ -1000,7 +1000,7 @@
private void createTestHistogram(MetricRegistry mreg) {
long[] bounds = new long[] {50, 500};
- HistogramMetric histogram = mreg.histogram("histogram", bounds, null);
+ HistogramMetricImpl histogram = mreg.histogram("histogram", bounds, null);
histogram.value(10);
histogram.value(51);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsConfigurationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsConfigurationTest.java
index f2cbaec..e2e3fdc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsConfigurationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsConfigurationTest.java
@@ -29,10 +29,11 @@
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.metric.MetricsMxBeanImpl;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.mxbean.MetricsMxBean;
+import org.apache.ignite.spi.metric.HistogramMetric;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
@@ -199,7 +200,7 @@
MetricRegistry mreg = g0.context().metric().registry(TEST_REG);
HitRateMetric hitRate = mreg.hitRateMetric(HITRATE_NAME, "test", 10000, 5);
- HistogramMetric histogram = mreg.histogram(HISTOGRAM_NAME, new long[] {250, 500}, "test");
+ HistogramMetricImpl histogram = mreg.histogram(HISTOGRAM_NAME, new long[] {250, 500}, "test");
assertEquals(1000, hitRate.rateTimeInterval());
assertArrayEquals(BOUNDS, histogram.bounds());
@@ -240,7 +241,7 @@
awaitPartitionMapExchange();
- HistogramMetric getTime = g0.context().metric().registry(cacheRegName).findMetric("GetTime");
+ HistogramMetricImpl getTime = g0.context().metric().registry(cacheRegName).findMetric("GetTime");
assertNotEquals(BOUNDS.length, getTime.bounds().length);
@@ -282,7 +283,7 @@
awaitPartitionMapExchange();
- HistogramMetric getTime = g0.context().metric().registry(cacheRegName).findMetric("GetTime");
+ HistogramMetricImpl getTime = g0.context().metric().registry(cacheRegName).findMetric("GetTime");
assertNotEquals(BOUNDS.length, getTime.bounds().length);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
index a8eaf58..3cd8a4a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
@@ -30,7 +30,7 @@
import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric;
import org.apache.ignite.internal.processors.metric.impl.BooleanMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.DoubleMetricImpl;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.HitRateMetric;
import org.apache.ignite.internal.processors.metric.impl.IntMetricImpl;
import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
@@ -232,7 +232,7 @@
/** */
@Test
public void testHistogram() throws Exception {
- HistogramMetric h = mreg.histogram("hmtest", new long[] {10, 100, 500}, "test");
+ HistogramMetricImpl h = mreg.histogram("hmtest", new long[] {10, 100, 500}, "test");
List<IgniteInternalFuture> futs = new ArrayList<>();
@@ -343,7 +343,7 @@
/** */
@Test
public void testHistogramNames() throws Exception {
- HistogramMetric h = new HistogramMetric("test", null, new long[]{10, 50, 500});
+ HistogramMetricImpl h = new HistogramMetricImpl("test", null, new long[]{10, 50, 500});
Map<String, T2<long[], String[]>> cache = new HashMap<>();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
index 4627eee..57ee010 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
@@ -45,7 +45,7 @@
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.IgniteKernal;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.util.lang.GridAbsPredicateX;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteFuture;
@@ -1415,7 +1415,7 @@
public void testGetTime() {
IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
- HistogramMetric m = metric("GetTime");
+ HistogramMetricImpl m = metric("GetTime");
assertTrue(Arrays.stream(m.value()).allMatch(v -> v == 0));
@@ -1433,7 +1433,7 @@
public void testPutTime() {
IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
- HistogramMetric m = metric("PutTime");
+ HistogramMetricImpl m = metric("PutTime");
assertTrue(Arrays.stream(m.value()).allMatch(v -> v == 0));
@@ -1447,7 +1447,7 @@
public void testRemoveTime() {
IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
- HistogramMetric m = metric("RemoveTime");
+ HistogramMetricImpl m = metric("RemoveTime");
assertTrue(Arrays.stream(m.value()).allMatch(v -> v == 0));
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
index b6978f2..b076150 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
@@ -21,7 +21,7 @@
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteTransactions;
import org.apache.ignite.cache.CacheMetrics;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.transactions.Transaction;
@@ -268,7 +268,7 @@
public void testCommitTime() {
IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
- HistogramMetric m = metric("CommitTime");
+ HistogramMetricImpl m = metric("CommitTime");
assertTrue(Arrays.stream(m.value()).allMatch(v -> v == 0));
@@ -286,7 +286,7 @@
public void testRollbackTime() {
IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
- HistogramMetric m = metric("RollbackTime");
+ HistogramMetricImpl m = metric("RollbackTime");
assertTrue(Arrays.stream(m.value()).allMatch(v -> v == 0));
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
index 505a1f7..ea11dac 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
@@ -26,7 +26,7 @@
import org.apache.ignite.internal.TestRecordingCommunicationSpi;
import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsFullMessage;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.spi.metric.LongMetric;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -84,8 +84,8 @@
LongMetric currentPMEDuration = reg.findMetric(PME_DURATION);
LongMetric currentBlockingPMEDuration = reg.findMetric(PME_OPS_BLOCKED_DURATION);
- HistogramMetric durationHistogram = reg.findMetric(PME_DURATION_HISTOGRAM);
- HistogramMetric blockindDurationHistogram = reg.findMetric(PME_OPS_BLOCKED_DURATION_HISTOGRAM);
+ HistogramMetricImpl durationHistogram = reg.findMetric(PME_DURATION_HISTOGRAM);
+ HistogramMetricImpl blockindDurationHistogram = reg.findMetric(PME_OPS_BLOCKED_DURATION_HISTOGRAM);
IgniteCache<Object, Object> cache = ignite.getOrCreateCache(
new CacheConfiguration<>(DEFAULT_CACHE_NAME)
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 259aa99..4b903a4 100755
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -2718,7 +2718,7 @@
}
/**
- * Returns metric set.
+ * Returns metric registry.
*
* @param igniteInstanceName Ignite instance name.
* @param grp Name of the group.
diff --git a/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/MetricRegistryLocalSystemView.java b/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/MetricRegistryLocalSystemView.java
index f44dfdb..60352df 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/MetricRegistryLocalSystemView.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/MetricRegistryLocalSystemView.java
@@ -21,9 +21,9 @@
import java.util.Iterator;
import java.util.function.Predicate;
import org.apache.ignite.internal.GridKernalContext;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.query.h2.sys.view.SqlAbstractLocalSystemView;
import org.apache.ignite.spi.metric.Metric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.h2.engine.Session;
import org.h2.result.Row;
@@ -36,18 +36,18 @@
*/
public class MetricRegistryLocalSystemView extends SqlAbstractLocalSystemView {
/** Metric registry. */
- private ReadOnlyMetricRegistry mreg;
+ private ReadOnlyMetricManager mreg;
/** Metric filter. */
- private @Nullable Predicate<MetricRegistry> filter;
+ private @Nullable Predicate<ReadOnlyMetricRegistry> filter;
/**
* @param ctx Context.
* @param mreg Metric registry.
* @param filter Metric registry filter.
*/
- public MetricRegistryLocalSystemView(GridKernalContext ctx, ReadOnlyMetricRegistry mreg,
- @Nullable Predicate<MetricRegistry> filter) {
+ public MetricRegistryLocalSystemView(GridKernalContext ctx, ReadOnlyMetricManager mreg,
+ @Nullable Predicate<ReadOnlyMetricRegistry> filter) {
super(SqlViewMetricExporterSpi.SYS_VIEW_NAME, "Ignite metrics",
ctx,
newColumn("NAME", Value.STRING),
@@ -62,7 +62,7 @@
@Override public Iterator<Row> getRows(Session ses, SearchRow first, SearchRow last) {
return new Iterator<Row>() {
/** */
- private Iterator<MetricRegistry> grps = mreg.iterator();
+ private Iterator<ReadOnlyMetricRegistry> grps = mreg.iterator();
/** */
private Iterator<Metric> curr = Collections.emptyIterator();
@@ -70,7 +70,7 @@
/** */
private boolean advance() {
while (grps.hasNext()) {
- MetricRegistry mreg = grps.next();
+ ReadOnlyMetricRegistry mreg = grps.next();
if (filter != null && !filter.test(mreg))
continue;
diff --git a/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/SqlViewMetricExporterSpi.java b/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/SqlViewMetricExporterSpi.java
index a0014e2..2b0c692 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/SqlViewMetricExporterSpi.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/spi/metric/sql/SqlViewMetricExporterSpi.java
@@ -20,13 +20,13 @@
import java.util.function.Predicate;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
import org.apache.ignite.internal.processors.query.h2.SchemaManager;
import org.apache.ignite.spi.IgniteSpiAdapter;
import org.apache.ignite.spi.IgniteSpiContext;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.metric.MetricExporterSpi;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.jetbrains.annotations.Nullable;
@@ -40,10 +40,10 @@
public static final String SYS_VIEW_NAME = "METRICS";
/** Metric filter. */
- private @Nullable Predicate<MetricRegistry> filter;
+ private @Nullable Predicate<ReadOnlyMetricRegistry> filter;
/** Metric Registry. */
- private ReadOnlyMetricRegistry mreg;
+ private ReadOnlyMetricManager mreg;
/** {@inheritDoc} */
@Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
@@ -68,12 +68,12 @@
}
/** {@inheritDoc} */
- @Override public void setMetricRegistry(ReadOnlyMetricRegistry mreg) {
+ @Override public void setMetricRegistry(ReadOnlyMetricManager mreg) {
this.mreg = mreg;
}
/** {@inheritDoc} */
- @Override public void setExportFilter(Predicate<MetricRegistry> filter) {
+ @Override public void setExportFilter(Predicate<ReadOnlyMetricRegistry> filter) {
this.filter = filter;
}
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IoStatisticsBasicIndexSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IoStatisticsBasicIndexSelfTest.java
index 809a1df..932ee4e 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IoStatisticsBasicIndexSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IoStatisticsBasicIndexSelfTest.java
@@ -46,6 +46,7 @@
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.spi.metric.Metric;
+import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
import org.junit.Assert;
import org.junit.Test;
@@ -422,7 +423,7 @@
public Set<String> deriveStatisticNames(IgniteEx ignite, IoStatisticsType statType) {
assert statType != null;
- Stream<MetricRegistry> grpsStream = ioStats(ignite, statType);
+ Stream<ReadOnlyMetricRegistry> grpsStream = ioStats(ignite, statType);
return grpsStream.flatMap(grp -> StreamSupport.stream(grp.spliterator(), false))
.filter(m -> m.name().endsWith("name"))
@@ -431,7 +432,7 @@
}
/** @return Stream of MetricGroup for specified {@link statType}. */
- private Stream<MetricRegistry> ioStats(IgniteEx ignite, IoStatisticsType statType) {
+ private Stream<ReadOnlyMetricRegistry> ioStats(IgniteEx ignite, IoStatisticsType statType) {
GridMetricManager mmgr = ignite.context().metric();
return StreamSupport.stream(mmgr.spliterator(), false)
diff --git a/modules/opencensus/src/main/java/org/apache/ignite/spi/metric/opencensus/OpenCensusMetricExporterSpi.java b/modules/opencensus/src/main/java/org/apache/ignite/spi/metric/opencensus/OpenCensusMetricExporterSpi.java
index e3d1c35..d5bfc97 100644
--- a/modules/opencensus/src/main/java/org/apache/ignite/spi/metric/opencensus/OpenCensusMetricExporterSpi.java
+++ b/modules/opencensus/src/main/java/org/apache/ignite/spi/metric/opencensus/OpenCensusMetricExporterSpi.java
@@ -43,17 +43,17 @@
import org.apache.ignite.internal.processors.metric.GridMetricManager;
import org.apache.ignite.internal.processors.metric.MetricRegistry;
import org.apache.ignite.internal.processors.metric.PushMetricsExporterAdapter;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.spi.IgniteSpiContext;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.metric.BooleanMetric;
import org.apache.ignite.spi.metric.DoubleMetric;
+import org.apache.ignite.spi.metric.HistogramMetric;
import org.apache.ignite.spi.metric.IntMetric;
import org.apache.ignite.spi.metric.LongMetric;
import org.apache.ignite.spi.metric.Metric;
import org.apache.ignite.spi.metric.ObjectMetric;
-import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
+import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
import org.jetbrains.annotations.Nullable;
import static io.opencensus.tags.TagMetadata.TagTtl.UNLIMITED_PROPAGATION;
@@ -81,7 +81,7 @@
*
* @see MetricRegistry
* @see GridMetricManager
- * @see ReadOnlyMetricRegistry
+ * @see ReadOnlyMetricManager
*/
public class OpenCensusMetricExporterSpi extends PushMetricsExporterAdapter {
/** Flag to enable or disable tag with Ignite instance name. */
diff --git a/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusMetricExporterSpiTest.java b/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusMetricExporterSpiTest.java
index 85f0232..6e6d105 100644
--- a/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusMetricExporterSpiTest.java
+++ b/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusMetricExporterSpiTest.java
@@ -30,7 +30,7 @@
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.metric.AbstractExporterSpiTest;
-import org.apache.ignite.internal.processors.metric.impl.HistogramMetric;
+import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
import org.apache.ignite.spi.metric.opencensus.OpenCensusMetricExporterSpi;
import org.junit.Test;
@@ -150,7 +150,7 @@
"test_registry_test_histogram_10_100.* 2",
"test_registry_test_histogram_100_inf.* 3"};
- HistogramMetric histogramMetric =
+ HistogramMetricImpl histogramMetric =
ignite.context().metric().registry(registryName).histogram(histogramName, bounds, histogramDesc);
for (long value : testValues)