use of com.shulie.instrument.simulator.module.model.gc.GcInfo in project LinkAgent by shulieTech.
the class PerfPlugin method info.
@Command("info")
public CommandResponse info(Map<String, String> args) {
try {
CommandResponse<List<ThreadInfo>> threadResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_THREAD, PerfConstants.MODULE_COMMAND_THREAD_INFO, threadParams);
CommandResponse<GcInfo> gcResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_GC, PerfConstants.MODULE_COMMAND_GC_INFO);
CommandResponse<MemoryInfo> memoryResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_MEMORY, PerfConstants.MODULE_COMMAND_MEMORY_INFO);
List<ThreadInfo> threadInfos = Collections.EMPTY_LIST;
if (!threadResp.isSuccess()) {
logger.error("Perf: collect perf thread info err! {}", threadResp.getMessage());
} else {
threadInfos = threadResp.getResult();
}
GcInfo gcInfo = null;
if (!gcResp.isSuccess()) {
logger.error("Perf: collect perf gc info err! {}", gcResp.getMessage());
} else {
gcInfo = gcResp.getResult();
}
MemoryInfo memoryInfo = null;
if (!memoryResp.isSuccess()) {
logger.error("Perf: collect perf memory info err! {}", memoryResp.getMessage());
} else {
memoryInfo = memoryResp.getResult();
}
PerfResponse response = PerfResponseBuilder.build(threadInfos, gcInfo, memoryInfo);
return CommandResponse.success(response);
} catch (Throwable e) {
logger.error("Perf: collect perf data occurred a unknow error. ", e);
return CommandResponse.failure(e);
}
}
use of com.shulie.instrument.simulator.module.model.gc.GcInfo in project LinkAgent by shulieTech.
the class PerfPlugin method collect.
private void collect() {
CommandResponse<List<ThreadInfo>> threadResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_THREAD, PerfConstants.MODULE_COMMAND_THREAD_INFO, threadParams);
CommandResponse<GcInfo> gcResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_GC, PerfConstants.MODULE_COMMAND_GC_INFO);
CommandResponse<MemoryInfo> memoryResp = moduleCommandInvoker.invokeCommand(PerfConstants.MODULE_ID_MEMORY, PerfConstants.MODULE_COMMAND_MEMORY_INFO);
List<ThreadInfo> threadInfos = Collections.EMPTY_LIST;
if (!threadResp.isSuccess()) {
logger.error("Perf: collect perf thread info err! {}", threadResp.getMessage());
} else {
threadInfos = threadResp.getResult();
}
GcInfo gcInfo = null;
if (!gcResp.isSuccess()) {
logger.error("Perf: collect perf gc info err! {}", gcResp.getMessage());
} else {
gcInfo = gcResp.getResult();
}
MemoryInfo memoryInfo = null;
if (!memoryResp.isSuccess()) {
logger.error("Perf: collect perf memory info err! {}", memoryResp.getMessage());
} else {
memoryInfo = memoryResp.getResult();
}
PerfResponse response = PerfResponseBuilder.build(threadInfos, gcInfo, memoryInfo);
push(response);
}
use of com.shulie.instrument.simulator.module.model.gc.GcInfo in project LinkAgent by shulieTech.
the class GcModule method info.
@Command(value = "info", description = "获取当前进程的 gc 信息")
public CommandResponse info(final Map<String, String> args) {
try {
List<GarbageCollectorMXBean> garbageCollectorMxBeans = ManagementFactory.getGarbageCollectorMXBeans();
GcInfo gcInfo = new GcInfo();
for (GarbageCollectorMXBean gcMXBean : garbageCollectorMxBeans) {
String name = gcMXBean.getName();
if (youngGcNames.contains(name)) {
gcInfo.setYoungGcCount(gcMXBean.getCollectionCount());
gcInfo.setYoungGcTime(gcMXBean.getCollectionTime());
} else if (oldGcNames.contains(name)) {
gcInfo.setOldGcCount(gcMXBean.getCollectionCount());
gcInfo.setOldGcTime(gcMXBean.getCollectionTime());
}
}
return CommandResponse.success(gcInfo);
} catch (Throwable e) {
return CommandResponse.failure(e);
}
}
Aggregations