All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sleepycat.je.rep.utilint.StatCaptureRepDefinitions Maven / Gradle / Ivy

The newest version!
/*-
 * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
 *
 * This file was distributed by Oracle as part of a version of Oracle Berkeley
 * DB Java Edition made available at:
 *
 * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
 *
 * Please see the LICENSE file included in the top-level directory of the
 * appropriate version of Oracle Berkeley DB Java Edition for a copy of the
 * license and additional information.
 */

package com.sleepycat.je.rep.utilint;

import java.util.SortedSet;
import java.util.TreeSet;

import com.sleepycat.je.rep.impl.node.FeederManagerStatDefinition;
import com.sleepycat.je.rep.impl.node.ReplayStatDefinition;
import com.sleepycat.je.rep.impl.node.ReplicaStatDefinition;
import com.sleepycat.je.rep.stream.FeederTxnStatDefinition;
import com.sleepycat.je.rep.vlsn.VLSNIndexStatDefinition;
import com.sleepycat.je.statcap.StatCaptureDefinitions;
import com.sleepycat.je.statcap.StatManager;
import com.sleepycat.je.utilint.StatDefinition;

public class StatCaptureRepDefinitions extends StatCaptureDefinitions {

    private static StatDefinition[] feederStats = {
        FeederManagerStatDefinition.N_FEEDERS_CREATED,
        FeederManagerStatDefinition.N_FEEDERS_SHUTDOWN,
        FeederManagerStatDefinition.REPLICA_DELAY_MAP,
        FeederManagerStatDefinition.REPLICA_AVG_DELAY_MS_MAP,
        FeederManagerStatDefinition.REPLICA_95_DELAY_MS_MAP,
        FeederManagerStatDefinition.REPLICA_99_DELAY_MS_MAP,
        FeederManagerStatDefinition.REPLICA_MAX_DELAY_MS_MAP,
        FeederManagerStatDefinition.REPLICA_LAST_COMMIT_TIMESTAMP_MAP,
        FeederManagerStatDefinition.REPLICA_LAST_COMMIT_VLSN_MAP,
        FeederManagerStatDefinition.REPLICA_VLSN_LAG_MAP,
        FeederManagerStatDefinition.REPLICA_VLSN_RATE_MAP
        };

    private static StatDefinition[] replayStats = {
        ReplayStatDefinition.N_COMMITS,
        ReplayStatDefinition.N_COMMIT_ACKS,
        ReplayStatDefinition.N_COMMIT_SYNCS,
        ReplayStatDefinition.N_COMMIT_NO_SYNCS,
        ReplayStatDefinition.N_COMMIT_WRITE_NO_SYNCS,
        ReplayStatDefinition.N_ABORTS,
        ReplayStatDefinition.N_LNS,
        ReplayStatDefinition.N_NAME_LNS,
        ReplayStatDefinition.N_MESSAGE_QUEUE_OVERFLOWS,
        ReplayStatDefinition.MIN_COMMIT_PROCESSING_NANOS,
        ReplayStatDefinition.MAX_COMMIT_PROCESSING_NANOS,
        ReplayStatDefinition.TOTAL_COMMIT_PROCESSING_NANOS,
        ReplayStatDefinition.LATEST_COMMIT_LAG_MS,
        ReplayStatDefinition.N_GROUP_COMMIT_TIMEOUTS,
        ReplayStatDefinition.N_GROUP_COMMIT_MAX_EXCEEDED,
        ReplayStatDefinition.N_GROUP_COMMIT_TXNS,
        ReplayStatDefinition.N_GROUP_COMMITS,
        ReplayStatDefinition.REPLAY_QUEUE_AVG_DELAY_MS,
        ReplayStatDefinition.REPLAY_QUEUE_95_DELAY_MS,
        ReplayStatDefinition.REPLAY_QUEUE_99_DELAY_MS,
        ReplayStatDefinition.REPLAY_QUEUE_MAX_DELAY_MS,
        ReplayStatDefinition.OUTPUT_QUEUE_AVG_DELAY_MS,
        ReplayStatDefinition.OUTPUT_QUEUE_95_DELAY_MS,
        ReplayStatDefinition.OUTPUT_QUEUE_99_DELAY_MS,
        ReplayStatDefinition.OUTPUT_QUEUE_MAX_DELAY_MS,
        ReplayStatDefinition.ELAPSED_TXN_AVG_MS,
        ReplayStatDefinition.ELAPSED_TXN_95_MS,
        ReplayStatDefinition.ELAPSED_TXN_99_MS,
        ReplayStatDefinition.ELAPSED_TXN_MAX_MS
    };

    private static StatDefinition[] replicaStats = {
        ReplicaStatDefinition.N_LAG_CONSISTENCY_WAITS,
        ReplicaStatDefinition.N_LAG_CONSISTENCY_WAIT_MS,
        ReplicaStatDefinition.N_VLSN_CONSISTENCY_WAITS,
        ReplicaStatDefinition.N_VLSN_CONSISTENCY_WAIT_MS
    };

    private static StatDefinition[] feedertxnStats = {
        FeederTxnStatDefinition.TXNS_ACKED,
        FeederTxnStatDefinition.TXNS_NOT_ACKED,
        FeederTxnStatDefinition.TOTAL_TXN_MS,
        FeederTxnStatDefinition.ACK_WAIT_MS,
        FeederTxnStatDefinition.LAST_COMMIT_VLSN,
        FeederTxnStatDefinition.LAST_COMMIT_TIMESTAMP,
        FeederTxnStatDefinition.VLSN_RATE
        };

    private static StatDefinition[] binaryProtocolStats = {
        BinaryProtocolStatDefinition.N_READ_NANOS,
        BinaryProtocolStatDefinition.N_WRITE_NANOS,
        BinaryProtocolStatDefinition.N_BYTES_READ,
        BinaryProtocolStatDefinition.N_MESSAGES_READ,
        BinaryProtocolStatDefinition.N_BYTES_WRITTEN,
        BinaryProtocolStatDefinition.N_MESSAGE_BATCHES,
        BinaryProtocolStatDefinition.N_MESSAGES_BATCHED,
        BinaryProtocolStatDefinition.N_MESSAGES_WRITTEN,
        BinaryProtocolStatDefinition.MESSAGE_READ_RATE,
        BinaryProtocolStatDefinition.MESSAGE_WRITE_RATE,
        BinaryProtocolStatDefinition.BYTES_READ_RATE,
        BinaryProtocolStatDefinition.BYTES_WRITE_RATE,
        BinaryProtocolStatDefinition.N_ACK_MESSAGES,
        BinaryProtocolStatDefinition.N_GROUP_ACK_MESSAGES,
        BinaryProtocolStatDefinition.N_MAX_GROUPED_ACKS,
        BinaryProtocolStatDefinition.N_GROUPED_ACKS,
        BinaryProtocolStatDefinition.N_ENTRIES_WRITTEN_OLD_VERSION
    };

    private static StatDefinition[] vlsnIndexStats = {
        VLSNIndexStatDefinition.N_HITS,
        VLSNIndexStatDefinition.N_MISSES,
        VLSNIndexStatDefinition.N_HEAD_BUCKETS_DELETED,
        VLSNIndexStatDefinition.N_TAIL_BUCKETS_DELETED,
        VLSNIndexStatDefinition.N_BUCKETS_CREATED
    };

    /*
     * Define min/max stats using the group name returned by loadStats not
     * necessarily what is defined in the underlying statistic. Some groups are
     * combined into a super group.
     */
    public static StatManager.SDef[] minStats = {
        new StatManager.SDef(ReplayStatDefinition.GROUP_NAME,
                             ReplayStatDefinition.MIN_COMMIT_PROCESSING_NANOS)
    };

    public static StatManager.SDef[] maxStats = {
        new StatManager.SDef(ReplayStatDefinition.GROUP_NAME,
                             ReplayStatDefinition.ELAPSED_TXN_MAX_MS),
        new StatManager.SDef(ReplayStatDefinition.GROUP_NAME,
                             ReplayStatDefinition.MAX_COMMIT_PROCESSING_NANOS),
        new StatManager.SDef(ReplayStatDefinition.GROUP_NAME,
                             ReplayStatDefinition.OUTPUT_QUEUE_MAX_DELAY_MS),
        new StatManager.SDef(ReplayStatDefinition.GROUP_NAME,
                             ReplayStatDefinition.REPLAY_QUEUE_MAX_DELAY_MS),
        new StatManager.SDef(BinaryProtocolStatDefinition.GROUP_NAME,
                             BinaryProtocolStatDefinition.N_MAX_GROUPED_ACKS)
    };

    public StatCaptureRepDefinitions() {
        super();
        String groupname = FeederManagerStatDefinition.GROUP_NAME;
        for (StatDefinition stat : feederStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
        groupname = FeederTxnStatDefinition.GROUP_NAME;
        for (StatDefinition stat : feedertxnStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
        groupname = ReplayStatDefinition.GROUP_NAME;
        for (StatDefinition stat : replayStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
        groupname = ReplicaStatDefinition.GROUP_NAME;
        for (StatDefinition stat : replicaStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
        groupname = BinaryProtocolStatDefinition.GROUP_NAME;
        for (StatDefinition stat : binaryProtocolStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
        groupname = VLSNIndexStatDefinition.GROUP_NAME;
        for (StatDefinition stat : vlsnIndexStats) {
            nameToDef.put(groupname + ":" + stat.getName(), stat);
        }
    }

    @Override
    public SortedSet getStatisticProjections() {
        SortedSet retval = new TreeSet();
        super.getProjectionsInternal(retval);

        String groupname = FeederManagerStatDefinition.GROUP_NAME;
        for (StatDefinition stat : feederStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        groupname = FeederTxnStatDefinition.GROUP_NAME;
        for (StatDefinition stat : feedertxnStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        groupname = ReplayStatDefinition.GROUP_NAME;
        for (StatDefinition stat : replayStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        groupname = ReplicaStatDefinition.GROUP_NAME;
        for (StatDefinition stat : replicaStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        groupname = BinaryProtocolStatDefinition.GROUP_NAME;
        for (StatDefinition stat : binaryProtocolStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        groupname = VLSNIndexStatDefinition.GROUP_NAME;
        for (StatDefinition stat : vlsnIndexStats) {
            retval.add(groupname + ":" + stat.getName());
        }
        return retval;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy