add webStat support

This commit is contained in:
wenshao
2012-08-12 14:48:29 +08:00
parent cef63ebdd6
commit 5a67bfdd73
4 changed files with 36 additions and 5 deletions
@@ -91,7 +91,7 @@ public class JSONDruidStatService {
}
private List<Map<String, Object>> getWebURIStatDataList(Map<String, String> parameters) {
List<Map<String, Object>> array = WebAppStatManager.getInstance().getWebAppStatData();
List<Map<String, Object>> array = WebAppStatManager.getInstance().getURIStatData();
return array;
}
@@ -135,6 +135,14 @@ public class WebAppStat {
data.put("ConcurrentMax", this.getConcurrentMax());
data.put("RequestCount", this.getRequestCount());
List<Map<String, Object>> uriStatDataList = getURIStatDataList();
data.put("URIList", uriStatDataList);
return data;
}
public List<Map<String, Object>> getURIStatDataList() {
List<Map<String, Object>> uriStatDataList = new ArrayList<Map<String, Object>>(this.uriStatMap.size());
for (WebURIStat uriStat : this.uriStatMap.values()) {
Map<String, Object> uriStatData = uriStat.getStatData();
@@ -148,10 +156,7 @@ public class WebAppStat {
uriStatDataList.add(uriStatData);
}
data.put("URIList", uriStatDataList);
return data;
return uriStatDataList;
}
}
@@ -39,6 +39,19 @@ public class WebAppStatManager {
return statDataList;
}
public List<Map<String, Object>> getURIStatData() {
Set<Object> stats = getWebAppStatSet();
List<Map<String, Object>> allAppUriStatDataList = new ArrayList<Map<String, Object>>();
for (Object stat : stats) {
List<Map<String, Object>> uriStatDataList = WebAppStatUtils.getURIStatDataList(stat);
allAppUriStatDataList.addAll(uriStatDataList);
}
return allAppUriStatDataList;
}
public void addWebAppStatSet(Object webAppStat) {
getWebAppStatSet().add(webAppStat);
@@ -1,6 +1,7 @@
package com.alibaba.druid.support.http.stat;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import com.alibaba.druid.support.logging.Log;
@@ -21,4 +22,16 @@ public class WebAppStatUtils {
return null;
}
}
@SuppressWarnings("unchecked")
public static List<Map<String, Object>> getURIStatDataList(Object webStat) {
try {
Method method = webStat.getClass().getMethod("getURIStatDataList");
Object obj = method.invoke(webStat);
return (List<Map<String, Object>>) obj;
} catch (Exception e) {
LOG.error("getURIStatDataList error", e);
return null;
}
}
}