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

cn.patterncat.metrics.network.NetstatMetricsSet Maven / Gradle / Ivy

The newest version!
package cn.patterncat.metrics.network;

import com.codahale.metrics.Gauge;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricSet;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by patterncat on 2017-01-27.
 */
public class NetstatMetricsSet implements MetricSet {

    final TcpStatWrapper tcpStatWrapper;

    final long collectIntervalInMs;

    public NetstatMetricsSet(long collectIntervalInMs) {
        this.collectIntervalInMs = collectIntervalInMs;
        tcpStatWrapper = new TcpStatWrapper(collectIntervalInMs);
    }

    @Override
    public Map getMetrics() {
        try{
            Map data = tcpStatWrapper.query();
            final Map gauges = new HashMap();
            for(Map.Entry entry : data.entrySet()){
                gauges.put(entry.getKey(), new Gauge() {
                    @Override
                    public Number getValue() {
                        //todo how to refresh
                        return tcpStatWrapper.query().get(entry.getKey());
                    }
                });
            }
            return gauges;
        }catch (Exception e){
            e.printStackTrace();
        }
        return Collections.emptyMap();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy