use of org.apache.phoenix.pherf.result.Result in project phoenix by apache.
the class MonitorManager method execute.
@Override
public Runnable execute() {
return new Runnable() {
@Override
public void run() {
try {
while (!shouldStop()) {
isRunning.set(true);
List rowValues = new ArrayList<String>();
synchronized (resultHandler) {
for (MonitorDetails monitorDetails : MONITOR_DETAILS_LIST) {
rowValues.clear();
try {
StandardMBean bean = new StandardMBean(monitorDetails.getMonitor(), Monitor.class);
Calendar calendar = new GregorianCalendar();
rowValues.add(monitorDetails);
rowValues.add(((Monitor) bean.getImplementation()).getStat());
rowValues.add(DateUtil.DEFAULT_MS_DATE_FORMATTER.format(calendar.getTime()));
Result result = new Result(ResultFileDetails.CSV, ResultFileDetails.CSV_MONITOR.getHeader().toString(), rowValues);
resultHandler.write(result);
} catch (Exception e) {
throw new FileLoaderRuntimeException("Could not log monitor result.", e);
}
rowCount.getAndIncrement();
}
try {
resultHandler.flush();
Thread.sleep(getMonitorFrequency());
} catch (Exception e) {
Thread.currentThread().interrupt();
e.printStackTrace();
}
}
}
} finally {
try {
isRunning.set(false);
if (resultHandler != null) {
resultHandler.close();
}
} catch (Exception e) {
throw new FileLoaderRuntimeException("Could not close monitor results.", e);
}
}
}
};
}
use of org.apache.phoenix.pherf.result.Result in project phoenix by apache.
the class CSVFileResultHandler method read.
public synchronized List<Result> read() throws IOException {
CSVParser parser = null;
util.ensureBaseResultDirExists();
try {
File file = new File(resultFileName);
parser = CSVParser.parse(file, Charset.defaultCharset(), CSVFormat.DEFAULT);
List<CSVRecord> records = parser.getRecords();
List<Result> results = new ArrayList<>();
String header = null;
for (CSVRecord record : records) {
// First record is the CSV Header
if (record.getRecordNumber() == 1) {
header = record.toString();
continue;
}
List<ResultValue> resultValues = new ArrayList<>();
for (String val : record.toString().split(PherfConstants.RESULT_FILE_DELIMETER)) {
resultValues.add(new ResultValue(val));
}
Result result = new Result(resultFileDetails, header, resultValues);
results.add(result);
}
return results;
} finally {
parser.close();
}
}
Aggregations