| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license |
| * agreements. See the NOTICE file distributed with this work for additional information regarding |
| * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance with the License. You may obtain a |
| * copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License |
| * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
| * or implied. See the License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package org.apache.geode.management; |
| |
| import java.beans.ConstructorProperties; |
| import java.io.Serializable; |
| |
| /** |
| * Composite data type used to distribute metrics for the operating system hosting a member of the |
| * distributed system. |
| * |
| * @since GemFire 7.0 |
| * |
| */ |
| public class OSMetrics implements Serializable { |
| |
| /** |
| * Maximum number file descriptor which can be opened |
| */ |
| private long maxFileDescriptorCount; |
| |
| /** |
| * Current number of open file descriptor count |
| */ |
| private long openFileDescriptorCount; |
| |
| private long processCpuTime; |
| |
| private long committedVirtualMemorySize; |
| |
| private long totalPhysicalMemorySize; |
| |
| private long freePhysicalMemorySize; |
| |
| private long totalSwapSpaceSize; |
| |
| private long freeSwapSpaceSize; |
| |
| /** |
| * Returns the operating system name. |
| */ |
| private String name; |
| |
| /** |
| * Returns the operating system version. |
| */ |
| private String version; |
| |
| /** |
| * Returns the operating system architecture. |
| */ |
| private String arch; |
| |
| /** |
| * Returns the number of processors available to the Java virtual machine. This method is |
| * equivalent to the {@link Runtime#availableProcessors()} method. |
| */ |
| private int availableProcessors; |
| |
| /** |
| * * Returns the system load average for the last minute. The system load average is the sum of |
| * the number of runnable entities queued to the {@linkplain #getAvailableProcessors available |
| * processors} and the number of runnable entities running on the available processors averaged |
| * over a period of time. The way in which the load average is calculated is operating system |
| * specific but is typically a damped time-dependent average. |
| */ |
| private double systemLoadAverage; |
| |
| /** |
| * |
| * This constructor is to be used by internal JMX framework only. User should not try to create an |
| * instance of this class. |
| */ |
| @ConstructorProperties({"maxFileDescriptorCount", "openFileDescriptorCount", "processCpuTime", |
| "committedVirtualMemorySize", "totalPhysicalMemorySize", "freePhysicalMemorySize", |
| "totalSwapSpaceSize", "freeSwapSpaceSize", "name", "version", "arch", "availableProcessors", |
| "systemLoadAverage" |
| |
| }) |
| public OSMetrics(long maxFileDescriptorCount, long openFileDescriptorCount, long processCpuTime, |
| long committedVirtualMemorySize, long totalPhysicalMemorySize, long freePhysicalMemorySize, |
| long totalSwapSpaceSize, long freeSwapSpaceSize, String name, String version, String arch, |
| int availableProcessors, double systemLoadAverage) { |
| this.maxFileDescriptorCount = maxFileDescriptorCount; |
| this.openFileDescriptorCount = openFileDescriptorCount; |
| this.processCpuTime = processCpuTime; |
| this.committedVirtualMemorySize = committedVirtualMemorySize; |
| this.totalPhysicalMemorySize = totalPhysicalMemorySize; |
| this.freePhysicalMemorySize = freePhysicalMemorySize; |
| this.totalSwapSpaceSize = totalSwapSpaceSize; |
| this.freeSwapSpaceSize = freeSwapSpaceSize; |
| this.name = name; |
| this.version = version; |
| this.arch = arch; |
| this.availableProcessors = availableProcessors; |
| this.systemLoadAverage = systemLoadAverage; |
| |
| } |
| |
| /** |
| * Returns the maximum number of open file descriptors allowed by the operating system. |
| */ |
| public long getMaxFileDescriptorCount() { |
| return maxFileDescriptorCount; |
| } |
| |
| /** |
| * Returns the current number of open file descriptors.. |
| */ |
| public long getOpenFileDescriptorCount() { |
| return openFileDescriptorCount; |
| } |
| |
| /** |
| * Returns the amount of time (in nanoseconds) used by the member's process. |
| */ |
| public long getProcessCpuTime() { |
| return processCpuTime; |
| } |
| |
| /** |
| * Returns the current number of megabytes of memory allocated. |
| */ |
| public long getCommittedVirtualMemorySize() { |
| return committedVirtualMemorySize; |
| } |
| |
| /** |
| * Returns the number of megabytes of memory available to the operating system. |
| */ |
| public long getTotalPhysicalMemorySize() { |
| return totalPhysicalMemorySize; |
| } |
| |
| /** |
| * Returns the number of megabytes of free memory available to the operating system. |
| */ |
| public long getFreePhysicalMemorySize() { |
| return freePhysicalMemorySize; |
| } |
| |
| /** |
| * Returns the number of megabytes of swap space allocated. |
| */ |
| public long getTotalSwapSpaceSize() { |
| return totalSwapSpaceSize; |
| } |
| |
| /** |
| * Returns the number of megabytes of free swap space. |
| */ |
| public long getFreeSwapSpaceSize() { |
| return freeSwapSpaceSize; |
| } |
| |
| /** |
| * Returns the name of the operating system. |
| */ |
| public String getName() { |
| return name; |
| } |
| |
| /** |
| * Returns the version of the operating system. |
| */ |
| public String getVersion() { |
| return version; |
| } |
| |
| /** |
| * Returns the hardware architecture. |
| */ |
| public String getArch() { |
| return arch; |
| } |
| |
| /** |
| * Returns the number of available processors. |
| */ |
| public int getAvailableProcessors() { |
| return availableProcessors; |
| } |
| |
| /** |
| * Returns the system load average. |
| */ |
| public double getSystemLoadAverage() { |
| return systemLoadAverage; |
| } |
| |
| /** |
| * String representation of OSMetrics |
| */ |
| @Override |
| public String toString() { |
| |
| return "{OSMetrics : maxFileDescriptorCount = " + maxFileDescriptorCount |
| + " openFileDescriptorCount = " + openFileDescriptorCount + " processCpuTime = " |
| + processCpuTime + " committedVirtualMemorySize = " + committedVirtualMemorySize |
| + " totalPhysicalMemorySize = " + totalPhysicalMemorySize + " freePhysicalMemorySize = " |
| + freePhysicalMemorySize + " totalSwapSpaceSize = " + totalSwapSpaceSize |
| + " freeSwapSpaceSize = " + freeSwapSpaceSize + " name = " + name + " version = " + version |
| + " arch = " + arch + " availableProcessors = " + availableProcessors |
| + " systemLoadAverage = " + systemLoadAverage + "}"; |
| } |
| } |