监控内存队列
queue的增强版
public class EnhancedQueue extends LinkedBlockingQueue{
private Counter pendings;
private Meter inQueueMeter;
private Meter deQueueMeter;
private String name;
public EnhancedQueue(MetricRegistry metricRegistry,String name){
this.name = name;
this.pendings = metricRegistry.counter(MetricRegistry.name(EnhancedQueue.class + name, "pendings"));
this.inQueueMeter = metricRegistry.meter(MetricRegistry.name(EnhancedQueue.class + name,"in-queue","tps"));
this.deQueueMeter = metricRegistry.meter(MetricRegistry.name(EnhancedQueue.class + name,"de-queue","tps"));
}
@Override
public E take() throws InterruptedException {
E element = super.take();
pendings.dec();
deQueueMeter.mark();
return element;
}
@Override
public void put(E e) throws InterruptedException {
super.put(e);
pendings.inc();
inQueueMeter.mark();
}
}
关键字:java, queue, metrics
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!