Example usage for io.netty.buffer PoolArenaMetric smallSubpages

List of usage examples for io.netty.buffer PoolArenaMetric smallSubpages

Introduction

In this page you can find the example usage for io.netty.buffer PoolArenaMetric smallSubpages.

Prototype

List<PoolSubpageMetric> smallSubpages();

Source Link

Document

Returns an unmodifiable List which holds PoolSubpageMetric s for small sub-pages.

Usage

From source file:com.heliosapm.utils.buffer.BufferArenaMonitor.java

License:Apache License

/**
 * <p>Refreshes the arena stats</p>
 * {@inheritDoc}//  ww w .  j  a  v  a  2 s. c  o  m
 * @see java.lang.Runnable#run()
 */
@Override
public void run() {
    final long start = System.currentTimeMillis();
    final List<PoolArenaMetric> arenaMetrics = direct ? pooledAllocator.directArenas()
            : pooledAllocator.heapArenas();

    totalChunkSize = 0;
    chunkFreeBytes = 0;
    chunkUsedBytes = 0;
    chunkUsage = 0;

    chunkLists = 0;
    smallSubPages = 0;
    tinySubPages = 0;
    allocations = 0;
    tinyAllocations = 0;
    smallAllocations = 0;
    normalAllocations = 0;
    hugeAllocations = 0;
    deallocations = 0;
    tinyDeallocations = 0;
    smallDeallocations = 0;
    normalDeallocations = 0;
    hugeDeallocations = 0;
    activeAllocations = 0;
    activeTinyAllocations = 0;
    activeSmallAllocations = 0;
    activeNormalAllocations = 0;
    activeHugeAllocations = 0;
    for (PoolArenaMetric poolArenaMetric : arenaMetrics) {
        for (PoolChunkListMetric pclm : poolArenaMetric.chunkLists()) {
            for (Iterator<PoolChunkMetric> iter = pclm.iterator(); iter.hasNext();) {
                PoolChunkMetric pcm = iter.next();
                totalChunkSize += pcm.chunkSize();
                chunkFreeBytes += pcm.freeBytes();
            }
        }
        chunkLists += poolArenaMetric.chunkLists().size();
        smallSubPages += poolArenaMetric.smallSubpages().size();
        tinySubPages += poolArenaMetric.tinySubpages().size();
        allocations += poolArenaMetric.numAllocations();
        tinyAllocations += poolArenaMetric.numTinyAllocations();
        smallAllocations += poolArenaMetric.numSmallAllocations();
        normalAllocations += poolArenaMetric.numNormalAllocations();
        hugeAllocations += poolArenaMetric.numHugeAllocations();
        deallocations += poolArenaMetric.numDeallocations();
        tinyDeallocations += poolArenaMetric.numTinyDeallocations();
        smallDeallocations += poolArenaMetric.numSmallDeallocations();
        normalDeallocations += poolArenaMetric.numNormalDeallocations();
        hugeDeallocations += poolArenaMetric.numHugeDeallocations();
        activeAllocations += poolArenaMetric.numActiveAllocations();
        activeTinyAllocations += poolArenaMetric.numActiveTinyAllocations();
        activeSmallAllocations += poolArenaMetric.numActiveSmallAllocations();
        activeNormalAllocations += poolArenaMetric.numActiveNormalAllocations();
        activeHugeAllocations += poolArenaMetric.numActiveHugeAllocations();
    }
    chunkUsedBytes = totalChunkSize - chunkFreeBytes;
    chunkUsage = perc(totalChunkSize, chunkUsedBytes);

    lastElapsed = System.currentTimeMillis() - start;
    //log.debug("Collected [{}] allocator stats from [{}] arena metrics in {} ms.", type, arenaMetrics.size(), lastElapsed);
}

From source file:com.yahoo.pulsar.broker.stats.AllocatorStatsGenerator.java

License:Apache License

private static PoolArenaStats newPoolArenaStats(PoolArenaMetric m) {
    PoolArenaStats stats = new PoolArenaStats();
    stats.numTinySubpages = m.numTinySubpages();
    stats.numSmallSubpages = m.numSmallSubpages();
    stats.numChunkLists = m.numChunkLists();

    stats.tinySubpages = m.tinySubpages().stream().map(x -> newPoolSubpageStats(x))
            .collect(Collectors.toList());
    stats.smallSubpages = m.smallSubpages().stream().map(x -> newPoolSubpageStats(x))
            .collect(Collectors.toList());
    stats.chunkLists = m.chunkLists().stream().map(x -> newPoolChunkListStats(x)).collect(Collectors.toList());

    stats.numAllocations = m.numAllocations();
    stats.numTinyAllocations = m.numTinyAllocations();
    stats.numSmallAllocations = m.numSmallAllocations();
    stats.numNormalAllocations = m.numNormalAllocations();
    stats.numHugeAllocations = m.numHugeAllocations();
    stats.numDeallocations = m.numDeallocations();
    stats.numTinyDeallocations = m.numTinyDeallocations();
    stats.numSmallDeallocations = m.numSmallDeallocations();
    stats.numNormalDeallocations = m.numNormalDeallocations();
    stats.numHugeDeallocations = m.numHugeDeallocations();
    stats.numActiveAllocations = m.numActiveAllocations();
    stats.numActiveTinyAllocations = m.numActiveTinyAllocations();
    stats.numActiveSmallAllocations = m.numActiveSmallAllocations();
    stats.numActiveNormalAllocations = m.numActiveNormalAllocations();
    stats.numActiveHugeAllocations = m.numActiveHugeAllocations();
    return stats;
}

From source file:ratpack.dropwizard.metrics.internal.PooledByteBufAllocatorMetricSet.java

License:Apache License

private void initPoolArenaMetrics(final Iterator<PoolArenaMetric> poolArenasIterator) {
    int counter = 0;
    while (poolArenasIterator.hasNext()) {
        final PoolArenaMetric poolArenaMetric = poolArenasIterator.next();
        final String prefix = format("poolArena.%s", counter);

        metrics.put(format("%s.activeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveAllocations());
        metrics.put(format("%s.numActiveBytes", prefix), (Gauge<Long>) () -> poolArenaMetric.numActiveBytes());
        metrics.put(format("%s.numActiveHugeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveHugeAllocations());
        metrics.put(format("%s.numActiveNormalAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveNormalAllocations());
        metrics.put(format("%s.numActiveSmallAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveSmallAllocations());
        metrics.put(format("%s.numActiveTinyAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveTinyAllocations());
        metrics.put(format("%s.numAllocations", prefix), (Gauge<Long>) () -> poolArenaMetric.numAllocations());
        metrics.put(format("%s.numDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numDeallocations());
        metrics.put(format("%s.numHugeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numHugeAllocations());
        metrics.put(format("%s.numHugeDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numHugeDeallocations());
        metrics.put(format("%s.numNormalAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numNormalAllocations());
        metrics.put(format("%s.numNormalDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numNormalDeallocations());
        metrics.put(format("%s.numSmallAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numSmallAllocations());
        metrics.put(format("%s.numSmallDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numSmallDeallocations());
        metrics.put(format("%s.numTinyAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numTinyAllocations());
        metrics.put(format("%s.numTinyDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numTinyDeallocations());
        metrics.put(format("%s.numSmallSubpages", prefix),
                (Gauge<Integer>) () -> poolArenaMetric.numSmallSubpages());
        metrics.put(format("%s.numTinySubpages", prefix),
                (Gauge<Integer>) () -> poolArenaMetric.numTinySubpages());

        final Iterator<PoolChunkListMetric> chunksIterator = poolArenaMetric.chunkLists().iterator();
        initPoolChunkListMetrics(prefix, chunksIterator);

        final Iterator<PoolSubpageMetric> smallSubpagesIterator = poolArenaMetric.smallSubpages().iterator();
        initSubpageMetrics(prefix, "smallSubpage", smallSubpagesIterator);

        final Iterator<PoolSubpageMetric> tinySubpagesIterator = poolArenaMetric.tinySubpages().iterator();
        initSubpageMetrics(prefix, "tinySubpage", tinySubpagesIterator);

        counter++;//from  w  w  w.  j  av  a 2 s.co m
    }
}