in src/main/java/org/apache/accumulo/testing/healthprobe/Monitor.java [55:108]
public static void main(String[] args) throws Exception {
MonitorOpts opts = new MonitorOpts();
opts.parseArgs(Monitor.class.getName(), args);
distance = opts.distance;
Authorizations auth = new Authorizations();
if (opts.auth != "") {
auth = new Authorizations(opts.auth);
}
try (AccumuloClient client = Accumulo.newClient().from(opts.getClientProps()).build();
Scanner scanner = client.createScanner(opts.tableName, auth)) {
if (opts.isolate) {
scanner.enableIsolation();
}
int scannerSleepMs = opts.sleep_ms;
LoopControl scanning_condition = opts.continuous ? new ContinuousLoopControl()
: new IterativeLoopControl(opts.scan_iterations);
while (scanning_condition.keepScanning()) {
Random tablet_index_generator = new Random();
TabletId pickedTablet =
pickTablet(client.tableOperations(), opts.tableName, tablet_index_generator);
Range range = pickedTablet.toRange();
scanner.setRange(range);
if (opts.batch_size > 0) {
scanner.setBatchSize(opts.batch_size);
}
try {
long startTime = System.nanoTime();
long count = consume(scanner, opts.distance);
long stopTime = System.nanoTime();
MDC.put("StartTime", String.valueOf(startTime));
MDC.put("TabletId", String.valueOf(pickedTablet));
MDC.put("TableName", String.valueOf(opts.tableName));
MDC.put("TotalTime", String.valueOf((stopTime - startTime)));
MDC.put("StartRow", String.valueOf(range.getStartKey()));
MDC.put("EndRow", String.valueOf(range.getEndKey()));
MDC.put("TotalRecords", String.valueOf(count));
log.info("SCN starttime={} tabletindex={} tablename={} totaltime={} totalrecords={}",
startTime, tablet_index_generator, opts.tableName, (stopTime - startTime), count);
if (scannerSleepMs > 0) {
sleepUninterruptibly(scannerSleepMs, TimeUnit.MILLISECONDS);
}
} catch (Exception e) {
log.error(String.format(
"Exception while scanning range %s. Check the state of Accumulo for errors.", range),
e);
}
}
}
}