Make CpuUsageGauge a CachedGauge.
This commit is contained in:
parent
647a2aea64
commit
6646be8d94
|
@ -171,6 +171,7 @@ import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static com.codahale.metrics.MetricRegistry.name;
|
import static com.codahale.metrics.MetricRegistry.name;
|
||||||
|
|
||||||
|
@ -484,7 +485,7 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
environment.healthChecks().register("directory", new RedisHealthCheck(directoryClient));
|
environment.healthChecks().register("directory", new RedisHealthCheck(directoryClient));
|
||||||
environment.healthChecks().register("cacheCluster", new RedisClusterHealthCheck(cacheCluster));
|
environment.healthChecks().register("cacheCluster", new RedisClusterHealthCheck(cacheCluster));
|
||||||
|
|
||||||
environment.metrics().register(name(CpuUsageGauge.class, "cpu"), new CpuUsageGauge());
|
environment.metrics().register(name(CpuUsageGauge.class, "cpu"), new CpuUsageGauge(3, TimeUnit.SECONDS));
|
||||||
environment.metrics().register(name(FreeMemoryGauge.class, "free_memory"), new FreeMemoryGauge());
|
environment.metrics().register(name(FreeMemoryGauge.class, "free_memory"), new FreeMemoryGauge());
|
||||||
environment.metrics().register(name(NetworkSentGauge.class, "bytes_sent"), new NetworkSentGauge());
|
environment.metrics().register(name(NetworkSentGauge.class, "bytes_sent"), new NetworkSentGauge());
|
||||||
environment.metrics().register(name(NetworkReceivedGauge.class, "bytes_received"), new NetworkReceivedGauge());
|
environment.metrics().register(name(NetworkReceivedGauge.class, "bytes_received"), new NetworkReceivedGauge());
|
||||||
|
|
|
@ -1,21 +1,25 @@
|
||||||
package org.whispersystems.textsecuregcm.metrics;
|
package org.whispersystems.textsecuregcm.metrics;
|
||||||
|
|
||||||
|
import com.codahale.metrics.CachedGauge;
|
||||||
import com.codahale.metrics.Gauge;
|
import com.codahale.metrics.Gauge;
|
||||||
import com.sun.management.OperatingSystemMXBean;
|
import com.sun.management.OperatingSystemMXBean;
|
||||||
|
|
||||||
import java.lang.management.ManagementFactory;
|
import java.lang.management.ManagementFactory;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class CpuUsageGauge implements Gauge<Integer> {
|
public class CpuUsageGauge extends CachedGauge<Integer> {
|
||||||
|
|
||||||
private final OperatingSystemMXBean operatingSystemMXBean;
|
private final OperatingSystemMXBean operatingSystemMXBean;
|
||||||
|
|
||||||
public CpuUsageGauge() {
|
public CpuUsageGauge(final long timeout, final TimeUnit timeoutUnit) {
|
||||||
|
super(timeout, timeoutUnit);
|
||||||
|
|
||||||
this.operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean)
|
this.operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean)
|
||||||
ManagementFactory.getOperatingSystemMXBean();
|
ManagementFactory.getOperatingSystemMXBean();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue() {
|
protected Integer loadValue() {
|
||||||
return (int) Math.ceil(operatingSystemMXBean.getSystemCpuLoad() * 100);
|
return (int) Math.ceil(operatingSystemMXBean.getSystemCpuLoad() * 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue