Proc metrics: add average system load for the last minute
Change-Id: I12d74ea28f7f8f52c16d53236ecca6582df351b7
This commit is contained in:
@@ -35,6 +35,7 @@ split up by update type (create+replace, and autoclose)
|
||||
* `proc/uptime`: Uptime of the Gerrit process.
|
||||
* `proc/cpu/num_cores`: Number of processors available to the Java virtual machine.
|
||||
* `proc/cpu/usage`: CPU time used by the Gerrit process.
|
||||
* `proc/cpu/system_load`: System load average for the last minute.
|
||||
* `proc/num_open_fds`: Number of open file descriptors.
|
||||
* `proc/jvm/memory/heap_committed`: Amount of memory guaranteed for user objects.
|
||||
* `proc/jvm/memory/heap_used`: Amount of memory holding user objects.
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.lang.management.GarbageCollectorMXBean;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.MemoryMXBean;
|
||||
import java.lang.management.MemoryUsage;
|
||||
import java.lang.management.OperatingSystemMXBean;
|
||||
import java.lang.management.ThreadMXBean;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -38,6 +39,7 @@ public class ProcMetricModule extends MetricModule {
|
||||
buildLabel(metrics);
|
||||
procUptime(metrics);
|
||||
procCpuUsage(metrics);
|
||||
procCpuLoad(metrics);
|
||||
procJvmGc(metrics);
|
||||
procJvmMemory(metrics);
|
||||
procJvmThread(metrics);
|
||||
@@ -97,6 +99,18 @@ public class ProcMetricModule extends MetricModule {
|
||||
Runtime.getRuntime()::availableProcessors);
|
||||
}
|
||||
|
||||
private void procCpuLoad(MetricMaker metrics) {
|
||||
OperatingSystemMXBean provider =
|
||||
ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);
|
||||
if (provider.getSystemLoadAverage() != -1) {
|
||||
metrics.newCallbackMetric(
|
||||
"proc/cpu/system_load",
|
||||
Double.class,
|
||||
new Description("System load average for the last minute").setGauge(),
|
||||
provider::getSystemLoadAverage);
|
||||
}
|
||||
}
|
||||
|
||||
private void procJvmMemory(MetricMaker metrics) {
|
||||
CallbackMetric0<Long> heapCommitted =
|
||||
metrics.newCallbackMetric(
|
||||
|
||||
Reference in New Issue
Block a user