package com.ibm.nmon.data.transform;
import com.ibm.nmon.data.DataType;
/**
* Adds a <code>swapused</code> metric for Linux memory measurements.
*/
public final class LinuxMemoryTransform implements DataTransform {
@Override
public DataType buildDataType(String id, String subId, String name, String... fields) {
String[] newFields = new String[fields.length + 1];
System.arraycopy(fields, 0, newFields, 0, fields.length);
newFields[fields.length] = "swapused";
return new DataType(id, name, newFields);
}
@Override
public double[] transform(DataType type, double[] data) {
double[] newData = new double[data.length + 1];
System.arraycopy(data, 0, newData, 0, data.length);
int swaptotal = type.getFieldIndex("swaptotal");
int swapfree = type.getFieldIndex("swapfree");
newData[data.length] = newData[swaptotal] - newData[swapfree];
return newData;
}
@Override
public boolean isValidFor(String typeId, String subId) {
return "MEM".equals(typeId);
}
}