boolean doSearchTest = conf.getBoolean("perf.test.search", true);
final TimerMetric searchTimer = Metrics.newTimer(ZoiePerf.class, "searchTimer",
TimeUnit.NANOSECONDS, TimeUnit.SECONDS);
final MeterMetric errorMeter = Metrics.newMeter(ZoiePerf.class, "errorMeter", "error",
TimeUnit.SECONDS);
monitoredMetrics.put("searchTimer", searchTimer);
monitoredMetrics.put("errorMeter", errorMeter);
final long waitTime = conf.getLong("perf.query.threadWait", 200);
final class SearchThread extends Thread {
private volatile boolean stop = false;
public void terminate() {
stop = true;
synchronized (this) {
this.notifyAll();
}
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void run() {
while (!stop) {
try {
searchTimer.time(new Callable() {
@Override
public Object call() throws Exception {
return testHandler.queryHandler.handleQuery();
}
});
} catch (Exception e) {
errorMeter.mark();
}
synchronized (this) {
try {
this.wait(waitTime);