/* * Copyright (c) 2020, Red Hat Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.internal.platform; import java.util.Objects; public class CgroupMetrics implements Metrics { private final CgroupSubsystem subsystem; CgroupMetrics(CgroupSubsystem subsystem) { this.subsystem = Objects.requireNonNull(subsystem); } @Override public String getProvider() { return subsystem.getProvider(); } @Override public long getCpuUsage() { return subsystem.getCpuUsage(); } @Override public long[] getPerCpuUsage() { return subsystem.getPerCpuUsage(); } @Override public long getCpuUserUsage() { return subsystem.getCpuUserUsage(); } @Override public long getCpuSystemUsage() { return subsystem.getCpuSystemUsage(); } @Override public long getCpuPeriod() { return subsystem.getCpuPeriod(); } @Override public long getCpuQuota() { return subsystem.getCpuQuota(); } @Override public long getCpuShares() { return subsystem.getCpuShares(); } @Override public long getCpuNumPeriods() { return subsystem.getCpuNumPeriods(); } @Override public long getCpuNumThrottled() { return subsystem.getCpuNumThrottled(); } @Override public long getCpuThrottledTime() { return subsystem.getCpuThrottledTime(); } @Override public long getEffectiveCpuCount() { return subsystem.getEffectiveCpuCount(); } @Override public int[] getCpuSetCpus() { return subsystem.getCpuSetCpus(); } @Override public int[] getEffectiveCpuSetCpus() { return subsystem.getEffectiveCpuSetCpus(); } @Override public int[] getCpuSetMems() { return subsystem.getCpuSetMems(); } @Override public int[] getEffectiveCpuSetMems() { return subsystem.getEffectiveCpuSetMems(); } public long getMemoryFailCount() { return subsystem.getMemoryFailCount(); } @Override public long getMemoryLimit() { return subsystem.getMemoryLimit(); } @Override public long getMemoryUsage() { return subsystem.getMemoryUsage(); } @Override public long getTcpMemoryUsage() { return subsystem.getTcpMemoryUsage(); } @Override public long getMemoryAndSwapLimit() { return subsystem.getMemoryAndSwapLimit(); } @Override public long getMemoryAndSwapUsage() { return subsystem.getMemoryAndSwapUsage(); } @Override public long getMemorySoftLimit() { return subsystem.getMemorySoftLimit(); } @Override public long getBlkIOServiceCount() { return subsystem.getBlkIOServiceCount(); } @Override public long getBlkIOServiced() { return subsystem.getBlkIOServiced(); } public static Metrics getInstance() { return CgroupSubsystemFactory.create(); } }