Package com.netflix.eventbus.impl

Source Code of com.netflix.eventbus.impl.EventBusStats

package com.netflix.eventbus.impl;

import com.netflix.servo.monitor.BasicCounter;
import com.netflix.servo.monitor.Counter;
import com.netflix.servo.monitor.MonitorConfig;
import com.netflix.servo.monitor.Monitors;
import com.netflix.servo.monitor.StatsTimer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import static com.netflix.eventbus.utils.EventBusUtils.newStatsTimer;

/**
* Runtime statistics for event bus, this relates to publish data and is always captured for the time period as returned
* by {@link EventBusStats#}.
*
* @author Nitesh Kant (nkant@netflix.com)
*/
class EventBusStats {

    private static final Logger LOGGER = LoggerFactory.getLogger(EventBusStats.class);

    final StatsTimer publishStats;
    final StatsTimer conditionalPublishStats;
    final StatsTimer filterStats;
    final Counter publishErrors;
    final Counter conditionalPublishErrors;

    public EventBusStats(long collectionDurationInMillis) {
        publishStats = newStatsTimer("eventbus_publish", collectionDurationInMillis);
        conditionalPublishStats = newStatsTimer("eventbus_conditional_publish", collectionDurationInMillis);
        filterStats = newStatsTimer("eventbus_publish_filter_stats", collectionDurationInMillis);
        publishErrors = new BasicCounter(MonitorConfig.builder("eventbus_publish_errors").build());
        conditionalPublishErrors = new BasicCounter(MonitorConfig.builder("eventbus_conditional_publish_errors").build());
        try {
            Monitors.registerObject(this);
        } catch (Throwable th) {
            LOGGER.error("Unable to register to event bus stats to servo.", th);
        }
    }
}
TOP

Related Classes of com.netflix.eventbus.impl.EventBusStats

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.