aeron-driver/src/main/java/io/aeron/driver/status/PerImageIndicator.java
public static AtomicCounter allocate(
        final MutableDirectBuffer tempBuffer,
        final String name,
        final CountersManager countersManager,
        final long registrationId,
        final int sessionId,
        final int streamId,
        final String channel)
    {
        final int counterId = StreamCounter.allocateCounterId(
            tempBuffer, name, PER_IMAGE_TYPE_ID, countersManager, registrationId, sessionId, streamId, channel);

        return new AtomicCounter(countersManager.valuesBuffer(), counterId, countersManager);
    }
public static AtomicCounter allocate(
        final MutableDirectBuffer tempBuffer,
        final String name,
        final CountersManager countersManager,
        final long registrationId,
        final int sessionId,
        final int streamId,
        final String channel)
    {
        final int counterId = StreamCounter.allocateCounterId(
            tempBuffer, name, PER_IMAGE_TYPE_ID, countersManager, registrationId, sessionId, streamId, channel);

        return new AtomicCounter(countersManager.valuesBuffer(), counterId, countersManager);
    }
Allocate a per {@link io.aeron.driver.PublicationImage} indicator.

@param tempBuffer      to be used for labels and key.
@param name            of the counter for the label.
@param countersManager from which to allocated the underlying storage.
@param registrationId  to be associated with the counter.
@param sessionId       for the stream of messages.
@param streamId        for the stream of messages.
@param channel         for the stream of messages.
@return a new {@link AtomicCounter} for tracking the indicator.