int maxMinute = queryCheckMinuteAndConditions(configs).getKey();
if (minute >= maxMinute - 1) {
long currentMill = System.currentTimeMillis();
long currentHourMill = currentMill - currentMill % TimeHelper.ONE_HOUR;
HeartbeatReport currentReport = generateReport(domain, currentHourMill);
for (Machine machine : currentReport.getMachines().values()) {
String ip = machine.getIp();
Map<String, double[]> arguments = generateArgumentMap(machine);
for (String metric : m_metrics) {
double[] values = extract(arguments.get(metric), maxMinute, minute);
processMeitrc(domain, ip, metric, values);
}
}
} else if (minute < 0) {
long currentMill = System.currentTimeMillis();
long lastHourMill = currentMill - currentMill % TimeHelper.ONE_HOUR - TimeHelper.ONE_HOUR;
HeartbeatReport lastReport = generateReport(domain, lastHourMill);
for (Machine machine : lastReport.getMachines().values()) {
String ip = machine.getIp();
Map<String, double[]> arguments = generateArgumentMap(machine);
for (String metric : m_metrics) {
double[] values = extract(arguments.get(metric), maxMinute, 59);
processMeitrc(domain, ip, metric, values);
}
}
} else {
long currentMill = System.currentTimeMillis();
long currentHourMill = currentMill - currentMill % TimeHelper.ONE_HOUR;
long lastHourMill = currentHourMill - TimeHelper.ONE_HOUR;
HeartbeatReport currentReport = generateReport(domain, currentHourMill);
HeartbeatReport lastReport = generateReport(domain, lastHourMill);
for (Machine lastMachine : lastReport.getMachines().values()) {
String ip = lastMachine.getIp();
Machine currentMachine = currentReport.getMachines().get(ip);
if (currentMachine != null) {
Map<String, double[]> lastHourArguments = generateArgumentMap(lastMachine);