Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IGNITE-12552: Move ReadOnlyMetricRegistry to public API. #7269

Merged
merged 7 commits into from
Jan 22, 2020
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -176,19 +176,19 @@ public class CacheMetricsImpl implements CacheMetrics {
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -278,10 +278,10 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
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;
Expand Down Expand Up @@ -2853,12 +2853,12 @@ private long currentPMEDuration(boolean blocked) {
}

/** @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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -88,10 +88,10 @@ public class TransactionMetricsAdapter implements TransactionMetrics {
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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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.";

Expand Down Expand Up @@ -197,13 +199,13 @@ public class GridMetricManager extends GridManagerAdapter<MetricExporterSpi> imp
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;
Expand Down Expand Up @@ -325,7 +327,7 @@ public GridMetricManager(GridKernalContext ctx) {
* @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)),
Expand Down Expand Up @@ -357,17 +359,17 @@ private <T extends Serializable> T readFromMetastorage(String key) {
}

/** {@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);
}

Expand All @@ -377,7 +379,7 @@ private <T extends Serializable> T readFromMetastorage(String key) {
* @param regName Metric registry name.
*/
public void remove(String regName) {
MetricRegistry mreg = registries.remove(regName);
ReadOnlyMetricRegistry mreg = registries.remove(regName);

if (mreg == null)
return;
Expand Down Expand Up @@ -444,7 +446,7 @@ public void configureHistogram(String name, long[] bounds) throws IgniteCheckedE
*
* @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)
Expand All @@ -470,7 +472,7 @@ private void onHistogramConfigChanged(String name, @Nullable long[] bounds) {
if (bounds == null)
return;

HistogramMetric m = find(name, HistogramMetric.class);
HistogramMetricImpl m = find(name, HistogramMetricImpl.class);

if (m == null)
return;
Expand All @@ -488,7 +490,7 @@ private <T extends Metric> T find(String name, Class<T> type) {

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())
Expand Down