private List<CurrentOperations> doCurrentOperations(List<TabletStats> tsStats) throws Exception {
List<CurrentOperations> currentOperations = new ArrayList<>();
for (TabletStats info : tsStats) {
if (info.extent == null) {
historical = info;
continue;
}
total.numEntries += info.numEntries;
ActionStatsUpdator.update(total.minors, info.minors);
ActionStatsUpdator.update(total.majors, info.majors);
KeyExtent extent = new KeyExtent(info.extent);
Table.ID tableId = extent.getTableId();
MessageDigest digester = MessageDigest.getInstance(Constants.PW_HASH_ALGORITHM);
if (extent.getEndRow() != null && extent.getEndRow().getLength() > 0) {
digester.update(extent.getEndRow().getBytes(), 0, extent.getEndRow().getLength());
}
String obscuredExtent = Base64.getEncoder().encodeToString(digester.digest());
String displayExtent = String.format("[%s]", obscuredExtent);
String tableName = Tables.getPrintableTableInfoFromId(Monitor.getContext(), tableId);
currentOperations.add(
new CurrentOperations(tableName, tableId, displayExtent, info.numEntries, info.ingestRate,
info.queryRate, info.minors.num != 0 ? info.minors.elapsed / info.minors.num : null,
stddev(info.minors.elapsed, info.minors.num, info.minors.sumDev),
info.minors.elapsed != 0 ? info.minors.count / info.minors.elapsed : null,
info.majors.num != 0 ? info.majors.elapsed / info.majors.num : null,
stddev(info.majors.elapsed, info.majors.num, info.majors.sumDev),
info.majors.elapsed != 0 ? info.majors.count / info.majors.elapsed : null));
}
return currentOperations;
}