Search in sources :

Example 11 with Metric

use of org.apache.ignite.spi.metric.Metric in project ignite by apache.

the class GridMetricManager method remove.

/**
 * Removes metric registry.
 *
 * @param regName Metric registry name.
 * @param removeCfg {@code True} if remove metric configurations.
 */
public void remove(String regName, boolean removeCfg) {
    GridCompoundFuture opsFut = new GridCompoundFuture<>();
    registries.computeIfPresent(regName, (key, mreg) -> {
        notifyListeners(mreg, metricRegRemoveLsnrs, log);
        if (!removeCfg)
            return null;
        DistributedMetaStorage metastorage0 = metastorage;
        if (metastorage0 == null)
            return null;
        try {
            for (Metric m : mreg) {
                if (m instanceof HitRateMetric)
                    opsFut.add(metastorage0.removeAsync(metricName(HITRATE_CFG_PREFIX, m.name())));
                else if (m instanceof HistogramMetric)
                    opsFut.add(metastorage0.removeAsync(metricName(HISTOGRAM_CFG_PREFIX, m.name())));
            }
        } catch (IgniteCheckedException e) {
            throw new IgniteException(e);
        }
        return null;
    });
    try {
        opsFut.markInitialized();
        opsFut.get();
    } catch (NodeStoppingException ignored) {
    // No-op.
    } catch (IgniteCheckedException e) {
        log.error("Failed to remove metrics configuration.", e);
    }
}
Also used : DistributedMetaStorage(org.apache.ignite.internal.processors.metastorage.DistributedMetaStorage) ReadableDistributedMetaStorage(org.apache.ignite.internal.processors.metastorage.ReadableDistributedMetaStorage) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) NodeStoppingException(org.apache.ignite.internal.NodeStoppingException) IgniteException(org.apache.ignite.IgniteException) HitRateMetric(org.apache.ignite.internal.processors.metric.impl.HitRateMetric) HistogramMetric(org.apache.ignite.spi.metric.HistogramMetric) Metric(org.apache.ignite.spi.metric.Metric) AtomicLongMetric(org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric) HistogramMetric(org.apache.ignite.spi.metric.HistogramMetric) HitRateMetric(org.apache.ignite.internal.processors.metric.impl.HitRateMetric) GridCompoundFuture(org.apache.ignite.internal.util.future.GridCompoundFuture)

Example 12 with Metric

use of org.apache.ignite.spi.metric.Metric in project ignite by apache.

the class IoStatisticsCacheSelfTest method deriveStatisticNames.

/**
 * Extract all tracked names for given statistics type.
 *
 * @param statType Type of statistics which tracked names need to extract.
 * @return Set of present names for given statType
 */
public Set<String> deriveStatisticNames(IoStatisticsType statType) {
    assert statType != null;
    GridMetricManager mmgr = ignite.context().metric();
    Stream<ReadOnlyMetricRegistry> grpsStream = StreamSupport.stream(mmgr.spliterator(), false).filter(grp -> grp.name().startsWith(statType.metricGroupName()));
    return grpsStream.flatMap(grp -> StreamSupport.stream(grp.spliterator(), false)).filter(m -> m.name().endsWith("name")).map(Metric::getAsString).collect(Collectors.toSet());
}
Also used : CacheAtomicityMode(org.apache.ignite.cache.CacheAtomicityMode) HASH_PK_IDX_NAME(org.apache.ignite.internal.metric.IoStatisticsHolderIndex.HASH_PK_IDX_NAME) Metric(org.apache.ignite.spi.metric.Metric) IgniteEx(org.apache.ignite.internal.IgniteEx) LOGICAL_READS(org.apache.ignite.internal.metric.IoStatisticsHolderCache.LOGICAL_READS) CACHE_GROUP(org.apache.ignite.internal.metric.IoStatisticsType.CACHE_GROUP) DataStorageConfiguration(org.apache.ignite.configuration.DataStorageConfiguration) StreamSupport(java.util.stream.StreamSupport) MetricUtils.metricName(org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName) WALMode(org.apache.ignite.configuration.WALMode) GridCommonAbstractTest(org.apache.ignite.testframework.junits.common.GridCommonAbstractTest) LOGICAL_READS_LEAF(org.apache.ignite.internal.metric.IoStatisticsHolderIndex.LOGICAL_READS_LEAF) Set(java.util.Set) Test(org.junit.Test) HASH_INDEX(org.apache.ignite.internal.metric.IoStatisticsType.HASH_INDEX) LOGICAL_READS_INNER(org.apache.ignite.internal.metric.IoStatisticsHolderIndex.LOGICAL_READS_INNER) Collectors(java.util.stream.Collectors) MetricRegistry(org.apache.ignite.internal.processors.metric.MetricRegistry) Sets(com.google.common.collect.Sets) IgniteCache(org.apache.ignite.IgniteCache) ReadOnlyMetricRegistry(org.apache.ignite.spi.metric.ReadOnlyMetricRegistry) IoStatisticsMetricsLocalMXBeanImplSelfTest.resetAllIoMetrics(org.apache.ignite.internal.metric.IoStatisticsMetricsLocalMXBeanImplSelfTest.resetAllIoMetrics) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) Stream(java.util.stream.Stream) CacheConfiguration(org.apache.ignite.configuration.CacheConfiguration) GridMetricManager(org.apache.ignite.internal.processors.metric.GridMetricManager) LongMetric(org.apache.ignite.spi.metric.LongMetric) DataRegionConfiguration(org.apache.ignite.configuration.DataRegionConfiguration) ReadOnlyMetricRegistry(org.apache.ignite.spi.metric.ReadOnlyMetricRegistry) GridMetricManager(org.apache.ignite.internal.processors.metric.GridMetricManager)

Example 13 with Metric

use of org.apache.ignite.spi.metric.Metric in project ignite by apache.

the class TcpCommunicationMetricsListener method collectMessagesCountByType.

/**
 * Collect messages count by type
 */
protected Map<String, Long> collectMessagesCountByType(String prefix) {
    Map<String, Long> res = new HashMap<>();
    prefix = metricName(COMMUNICATION_METRICS_GROUP_NAME, prefix);
    for (Metric metric : mreg) {
        if (metric.name().startsWith(prefix)) {
            short directType = Short.parseShort(metric.name().substring(prefix.length()));
            Map<Short, String> msgTypeMap0 = msgTypeMap;
            if (msgTypeMap0 != null) {
                String typeName = msgTypeMap0.get(directType);
                if (typeName != null)
                    res.put(typeName, ((LongMetric) metric).value());
            }
        }
    }
    return res;
}
Also used : HashMap(java.util.HashMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) IntHashMap(org.apache.ignite.internal.util.collection.IntHashMap) Metric(org.apache.ignite.spi.metric.Metric) LongAdderMetric(org.apache.ignite.internal.processors.metric.impl.LongAdderMetric) LongMetric(org.apache.ignite.spi.metric.LongMetric) LongMetric(org.apache.ignite.spi.metric.LongMetric)

Example 14 with Metric

use of org.apache.ignite.spi.metric.Metric in project ignite by apache.

the class MetricRegistryMBean method searchHistogram.

/**
 * Parse attribute name for a histogram and search it's value.
 *
 * @param name Attribute name.
 * @param mreg Metric registry to search histogram in.
 * @return Specific bucket value or {@code null} if not found.
 * @see MetricUtils#histogramBucketNames(HistogramMetric)
 */
public static Long searchHistogram(String name, ReadOnlyMetricRegistry mreg) {
    int highBoundIdx;
    boolean isInf = name.endsWith(INF);
    if (isInf)
        highBoundIdx = name.length() - 4;
    else {
        highBoundIdx = name.lastIndexOf(HISTOGRAM_NAME_DIVIDER);
        if (highBoundIdx == -1)
            return null;
    }
    int lowBoundIdx = name.lastIndexOf(HISTOGRAM_NAME_DIVIDER, highBoundIdx - 1);
    if (lowBoundIdx == -1)
        return null;
    Metric m = mreg.findMetric(name.substring(0, lowBoundIdx));
    if (!(m instanceof HistogramMetric))
        return null;
    HistogramMetric h = (HistogramMetric) m;
    long[] bounds = h.bounds();
    long[] values = h.value();
    long lowBound;
    try {
        lowBound = Long.parseLong(name.substring(lowBoundIdx + 1, highBoundIdx));
    } catch (NumberFormatException e) {
        return null;
    }
    if (isInf) {
        if (bounds[bounds.length - 1] == lowBound)
            return values[values.length - 1];
        return null;
    }
    long highBound;
    try {
        highBound = Long.parseLong(name.substring(highBoundIdx + 1));
    } catch (NumberFormatException e) {
        return null;
    }
    int idx = binarySearch(bounds, highBound);
    if (idx < 0)
        return null;
    if ((idx == 0 && lowBound != 0) || (idx != 0 && bounds[idx - 1] != lowBound))
        return null;
    return values[idx];
}
Also used : HistogramMetric(org.apache.ignite.spi.metric.HistogramMetric) BooleanMetric(org.apache.ignite.spi.metric.BooleanMetric) HistogramMetric(org.apache.ignite.spi.metric.HistogramMetric) IntMetric(org.apache.ignite.spi.metric.IntMetric) Metric(org.apache.ignite.spi.metric.Metric) ObjectMetric(org.apache.ignite.spi.metric.ObjectMetric) LongMetric(org.apache.ignite.spi.metric.LongMetric) DoubleMetric(org.apache.ignite.spi.metric.DoubleMetric)

Example 15 with Metric

use of org.apache.ignite.spi.metric.Metric in project ignite by apache.

the class GridCacheAbstractMetricsSelfTest method testPutTime.

/**
 */
@Test
public void testPutTime() throws Exception {
    IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME);
    HistogramMetricImpl putTime = metric("PutTime");
    HistogramMetricImpl putAllTime = metric("PutAllTime");
    assertTrue(stream(putTime.value()).allMatch(v -> v == 0));
    assertTrue(stream(putAllTime.value()).allMatch(v -> v == 0));
    cache.put(1, 1);
    cache.putAsync(2, 2).get();
    assertTrue(waitForCondition(() -> stream(putTime.value()).sum() == 2, getTestTimeout()));
    assertEquals(0, stream(putAllTime.value()).sum());
    cache.putAll(F.asMap(3, 3));
    cache.putAllAsync(F.asMap(4, 4)).get();
    assertTrue(waitForCondition(() -> stream(putAllTime.value()).sum() == 2, getTestTimeout()));
    assertEquals(2, stream(putTime.value()).sum());
}
Also used : CacheAtomicityMode(org.apache.ignite.cache.CacheAtomicityMode) GridAbsPredicateX(org.apache.ignite.internal.util.lang.GridAbsPredicateX) TouchedExpiryPolicy(javax.cache.expiry.TouchedExpiryPolicy) Metric(org.apache.ignite.spi.metric.Metric) EntryProcessorResult(javax.cache.processor.EntryProcessorResult) Transaction(org.apache.ignite.transactions.Transaction) GridTestUtils.waitForCondition(org.apache.ignite.testframework.GridTestUtils.waitForCondition) U(org.apache.ignite.internal.util.typedef.internal.U) HashMap(java.util.HashMap) IgniteEx(org.apache.ignite.internal.IgniteEx) EntryProcessorException(javax.cache.processor.EntryProcessorException) TreeSet(java.util.TreeSet) MutableEntry(javax.cache.processor.MutableEntry) MetricUtils.cacheMetricsRegistryName(org.apache.ignite.internal.processors.metric.impl.MetricUtils.cacheMetricsRegistryName) Collections.singleton(java.util.Collections.singleton) Map(java.util.Map) Duration(javax.cache.expiry.Duration) LinkedHashSet(java.util.LinkedHashSet) IgniteKernal(org.apache.ignite.internal.IgniteKernal) F(org.apache.ignite.internal.util.typedef.F) IgniteFuture(org.apache.ignite.lang.IgniteFuture) ExpiryPolicy(javax.cache.expiry.ExpiryPolicy) CachePeekMode(org.apache.ignite.cache.CachePeekMode) ImmutableMap(com.google.common.collect.ImmutableMap) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) Set(java.util.Set) Test(org.junit.Test) Ignite(org.apache.ignite.Ignite) MILLISECONDS(java.util.concurrent.TimeUnit.MILLISECONDS) MetricRegistry(org.apache.ignite.internal.processors.metric.MetricRegistry) IgniteCache(org.apache.ignite.IgniteCache) TimeUnit(java.util.concurrent.TimeUnit) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) HistogramMetricImpl(org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl) CacheEntryProcessor(org.apache.ignite.cache.CacheEntryProcessor) CacheConfiguration(org.apache.ignite.configuration.CacheConfiguration) CacheMetrics(org.apache.ignite.cache.CacheMetrics) LongMetric(org.apache.ignite.spi.metric.LongMetric) Arrays.stream(java.util.Arrays.stream) CacheMode(org.apache.ignite.cache.CacheMode) HistogramMetricImpl(org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl) Test(org.junit.Test)

Aggregations

Metric (org.apache.ignite.spi.metric.Metric)17 LongMetric (org.apache.ignite.spi.metric.LongMetric)12 IgniteEx (org.apache.ignite.internal.IgniteEx)8 MetricRegistry (org.apache.ignite.internal.processors.metric.MetricRegistry)8 IgniteConfiguration (org.apache.ignite.configuration.IgniteConfiguration)7 HashMap (java.util.HashMap)6 Test (org.junit.Test)6 Map (java.util.Map)5 ImmutableMap (com.google.common.collect.ImmutableMap)4 Set (java.util.Set)4 IgniteCache (org.apache.ignite.IgniteCache)4 IgniteCheckedException (org.apache.ignite.IgniteCheckedException)4 CacheAtomicityMode (org.apache.ignite.cache.CacheAtomicityMode)4 CacheConfiguration (org.apache.ignite.configuration.CacheConfiguration)4 HistogramMetric (org.apache.ignite.spi.metric.HistogramMetric)4 ReadOnlyMetricRegistry (org.apache.ignite.spi.metric.ReadOnlyMetricRegistry)4 ArrayList (java.util.ArrayList)3 Arrays.stream (java.util.Arrays.stream)3 Collections.singleton (java.util.Collections.singleton)3 LinkedHashSet (java.util.LinkedHashSet)3