1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.monitoring.reporting.web.plugin.jvm.gauges;
18
19 import org.apache.commons.monitoring.Role;
20 import org.apache.commons.monitoring.configuration.Configuration;
21 import org.apache.commons.monitoring.counters.Unit;
22 import org.apache.commons.monitoring.gauges.Gauge;
23
24 import java.lang.management.ManagementFactory;
25 import java.lang.management.OperatingSystemMXBean;
26
27 public class CPUGauge implements Gauge {
28 public static final Role CPU = new Role("CPU", Unit.UNARY);
29
30 private static final OperatingSystemMXBean SYSTEM_MX_BEAN = ManagementFactory.getOperatingSystemMXBean();
31
32 @Override
33 public Role role() {
34 return CPU;
35 }
36
37 @Override
38 public double value() {
39 return SYSTEM_MX_BEAN.getSystemLoadAverage();
40 }
41
42 @Override
43 public long period() {
44 return Configuration.getInteger(Configuration.COMMONS_MONITORING_PREFIX + "gauge.cpu.period", 4000);
45 }
46 }