use of voldemort.store.stats.RequestCounter in project voldemort by voldemort.
the class StatusServlet method outputJSON.
protected void outputJSON(HttpServletResponse response) {
StringBuilder sb = new StringBuilder("{\n");
sb.append(" \"servertime\": \"");
sb.append(new Date());
sb.append("\",");
sb.append("\n \"server\": \"");
sb.append(myMachine);
sb.append("\",");
sb.append("\n \"node\": \"");
sb.append(server.getMetadataStore().getNodeId());
sb.append("\",");
sb.append("\n \"uptime\": \"");
sb.append(abstractSocketService.getStatusManager().getFormattedUptime());
sb.append("\",");
sb.append("\n \"num_workers\": ");
sb.append(abstractSocketService.getStatusManager().getActiveWorkersCount());
sb.append(",");
sb.append("\n \"pool_size\": ");
sb.append(abstractSocketService.getStatusManager().getWorkerPoolSize());
sb.append(",");
sb.append("\n \"stores\": {");
int i = 0;
for (Store<ByteArray, byte[], byte[]> store : server.getStoreRepository().getAllLocalStores()) {
if (i++ > 0) {
sb.append(",");
}
sb.append("\n \"");
sb.append(store.getName());
sb.append("\" : {\n");
if (store instanceof StatTrackingStore) {
StatTrackingStore statStore = (StatTrackingStore) store;
Map<Tracked, RequestCounter> stats = statStore.getStats().getCounters();
for (Tracked t : Tracked.values()) {
if (t == Tracked.EXCEPTION) {
continue;
}
sb.append(fillCommonStats(stats, t));
}
sb.append(",\n \"num_exceptions\": ");
sb.append(statStore.getStats().getCount(Tracked.EXCEPTION));
sb.append("\n");
sb.append(" }");
}
if (store instanceof QuotaLimitingStore) {
QuotaLimitingStore quotaStore = (QuotaLimitingStore) store;
Map<Tracked, RequestCounter> stats = quotaStore.getStats().getCounters();
for (Tracked t : Tracked.values()) {
if (t == Tracked.EXCEPTION) {
continue;
}
sb.append(fillCommonStats(stats, t));
}
sb.append(",\n \"num_exceptions\": ");
sb.append(quotaStore.getStats().getCount(Tracked.EXCEPTION));
sb.append("\n");
sb.append(" }");
}
}
sb.append("\n }\n");
sb.append("}\n");
try {
response.setContentType("text/plain");
OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream());
writer.write(sb.toString());
writer.flush();
} catch (Exception e) {
throw new VoldemortException(e);
}
}
Aggregations