alluxio.metrics.OperationSystemGaugeSet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alluxio-core-common Show documentation
Show all versions of alluxio-core-common Show documentation
Common utilities shared in Alluxio core modules
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in compliance with the License, which is
* available at www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.metrics;
import com.codahale.metrics.CachedGauge;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricSet;
import com.sun.management.OperatingSystemMXBean;
import com.sun.management.UnixOperatingSystemMXBean;
import java.lang.management.ManagementFactory;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* A set of counters for the os metric.
*/
public class OperationSystemGaugeSet implements MetricSet {
private OperatingSystemMXBean mOsmxb;
private UnixOperatingSystemMXBean mUnixb;
@Override
public Map getMetrics() {
final Map gauges = new HashMap<>();
try {
mOsmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
mUnixb = (UnixOperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
} catch (Throwable e) {
return gauges;
}
gauges.put("os.freePhysicalMemory", new CachedGauge(10, TimeUnit.MINUTES) {
@Override
protected Long loadValue() {
return mOsmxb.getFreePhysicalMemorySize();
}
});
gauges.put("os.totalPhysicalMemory", new CachedGauge(10, TimeUnit.MINUTES) {
@Override
protected Long loadValue() {
return mOsmxb.getTotalPhysicalMemorySize();
}
});
gauges.put("os.cpuLoad", new CachedGauge(10, TimeUnit.MINUTES) {
@Override
protected Double loadValue() {
return mOsmxb.getSystemCpuLoad();
}
});
gauges.put("os.maxFileCount", new CachedGauge(10, TimeUnit.MINUTES) {
@Override
protected Long loadValue() {
return mUnixb.getMaxFileDescriptorCount();
}
});
gauges.put("os.openFileCount", new CachedGauge(10, TimeUnit.MINUTES) {
@Override
protected Long loadValue() {
return mUnixb.getOpenFileDescriptorCount();
}
});
return gauges;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy