/*
* Copyright to the original author or authors.
*
* Licensed 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.rioproject.tools.ui.cybernodeutilization;
import org.rioproject.system.ComputeResourceUtilization;
import org.rioproject.system.MeasuredResource;
import org.rioproject.system.measurable.cpu.CpuUtilization;
import org.rioproject.system.measurable.disk.DiskSpaceUtilization;
import org.rioproject.system.measurable.memory.ProcessMemoryUtilization;
import org.rioproject.system.measurable.memory.SystemMemoryUtilization;
import org.rioproject.tools.ui.Constants;
/**
* @author Dennis Reedy
*/
public final class MeasuredValueHelper {
public static final double KB = 1024;
//private static final double MB = Math.pow(KB, 2);
public static final double GB = Math.pow(KB, 3);
private MeasuredValueHelper() {
}
static Double getMeasuredValue(final String label,
final ComputeResourceUtilization cru) {
Double value = Double.NaN;
for (MeasuredResource mRes : cru.getMeasuredResources()) {
if (mRes.getIdentifier().equals(label)) {
value = mRes.getValue();
break;
}
}
return value;
}
@SuppressWarnings("unused")
static double getMeasuredResourceValue(final String cName,
final ComputeResourceUtilization cru) {
double value = 0;
if (cName.equals(Constants.UTIL_PERCENT_CPU)) {
CpuUtilization cpu = cru.getCpuUtilization();
value = (cpu == null ? 0 : cpu.getValue());
} else if (cName.equals(Constants.UTIL_PERCENT_MEMORY)) {
SystemMemoryUtilization mem = cru.getSystemMemoryUtilization();
value = (mem == null ? 0 : mem.getValue());
} else if (cName.equals(Constants.UTIL_TOTAL_MEMORY)) {
SystemMemoryUtilization mem = cru.getSystemMemoryUtilization();
value = (mem == null ? 0 : mem.getTotal());
} else if (cName.equals(Constants.UTIL_FREE_MEMORY)) {
SystemMemoryUtilization mem = cru.getSystemMemoryUtilization();
value = (mem == null ? 0 : mem.getFree());
} else if (cName.equals(Constants.UTIL_USED_MEMORY)) {
SystemMemoryUtilization mem = cru.getSystemMemoryUtilization();
value = (mem == null ? 0 : mem.getUsed());
} else if (cName.equals(Constants.UTIL_PERCENT_DISK)) {
DiskSpaceUtilization disk = cru.getDiskSpaceUtilization();
value = (disk == null ? 0 : disk.getValue());
} else if (cName.equals(Constants.UTIL_AVAIL_DISK)) {
DiskSpaceUtilization disk = cru.getDiskSpaceUtilization();
value = (disk == null ? 0 : disk.getAvailable() / GB);
} else if (cName.equals(Constants.UTIL_TOTAL_DISK)) {
DiskSpaceUtilization disk = cru.getDiskSpaceUtilization();
value = (disk == null ? 0 : disk.getCapacity() / GB);
} else if (cName.equals(Constants.UTIL_PERCENT_CPU_PROC)) {
value = getMeasuredValue("CPU (JVM)", cru);
} else if (cName.equals(Constants.UTIL_PERCENT_HEAP_JVM)) {
value = getMeasuredValue("Memory", cru);
} else if (cName.equals(Constants.UTIL_HEAP_MEM_JVM)) {
ProcessMemoryUtilization mem = cru.getProcessMemoryUtilization();
value = (mem == null ? 0 : mem.getUsedHeap());
} else if (cName.equals(Constants.UTIL_HEAP_MEM_AVAIL)) {
ProcessMemoryUtilization mem = cru.getProcessMemoryUtilization();
value = (mem == null ? 0 : mem.getCommittedHeap());
} else if (cName.equals(Constants.UTIL_REAL_MEM_PROC)) {
ProcessMemoryUtilization mem = cru.getProcessMemoryUtilization();
value = (mem == null ? 0 : mem.getResident());
}
return value;
}
}