@Override public boolean doMonitor(ServiceEmitter emitter) { // process CPU try { ProcCpu procCpu = sigar.getProcCpu(currentProcessId); final ServiceMetricEvent.Builder builder = builder(); MonitorUtils.addDimensionsToBuilder(builder, dimensions); // delta for total, sys, user Map<String, Long> procDiff = diff.to( "proc/cpu", ImmutableMap.of( "jvm/cpu/total", procCpu.getTotal(), "jvm/cpu/sys", procCpu.getSys(), "jvm/cpu/user", procCpu.getUser() ) ); if (procDiff != null) { for (Map.Entry<String, Long> entry : procDiff.entrySet()) { emitter.emit(builder.build(entry.getKey(), entry.getValue())); } } emitter.emit(builder.build("jvm/cpu/percent", procCpu.getPercent())); } catch (SigarException e) { log.error(e, "Failed to get ProcCpu"); } return true; } }
@Override public boolean doMonitor(ServiceEmitter emitter) { // process CPU try { ProcCpu procCpu = sigar.getProcCpu(currentProcessId); final ServiceMetricEvent.Builder builder = builder(); MonitorUtils.addDimensionsToBuilder(builder, dimensions); // delta for total, sys, user Map<String, Long> procDiff = diff.to( "proc/cpu", ImmutableMap.of( "jvm/cpu/total", procCpu.getTotal(), "jvm/cpu/sys", procCpu.getSys(), "jvm/cpu/user", procCpu.getUser() ) ); if (procDiff != null) { for (Map.Entry<String, Long> entry : procDiff.entrySet()) { emitter.emit(builder.build(entry.getKey(), entry.getValue())); } } emitter.emit(builder.build("jvm/cpu/percent", procCpu.getPercent())); } catch (SigarException e) { log.error(e, "Failed to get ProcCpu"); } return true; } }