package com.sohu.cache.server.data; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.math.NumberUtils; /** * 系统负载 */ public class Load implements LineParser{ public static final Pattern PATTERN = Pattern.compile( "^BBBP,[0-9]+,uptime,.*(\\d+\\.\\d+), (\\d+\\.\\d+), (\\d+\\.\\d+)"); //1分钟负载 private float load1; //5分钟负载 private float load5; //15分钟负载 private float load15; /** * line format: * BBBP,585,uptime," 09:35:00 up 567 days, 15:07, 0 users, load average: 0.60, 0.63, 0.67" */ public void parse(String line, String timeKey) throws Exception{ Matcher matcher = PATTERN.matcher(line); if(matcher.find()) { load1 = NumberUtils.toFloat(matcher.group(1)); load5 = NumberUtils.toFloat(matcher.group(2)); load15 = NumberUtils.toFloat(matcher.group(3)); } } public float getLoad1() { return load1; } public float getLoad5() { return load5; } public float getLoad15() { return load15; } @Override public String toString() { return "Load [load1=" + load1 + ", load5=" + load5 + ", load15=" + load15 + "]"; } }