package rocks.inspectit.server.influx.builder;
import org.influxdb.dto.Point.Builder;
import org.springframework.stereotype.Component;
import rocks.inspectit.server.influx.constants.Series;
import rocks.inspectit.shared.all.communication.data.MemoryInformationData;
/**
* Point builder for the {@link MemoryInformationData}.
*
* @author Ivan Senic
* @author Alexander Wert
*
*/
@Component
public class MemoryInformationPointBuilder extends DefaultDataPointBuilder<MemoryInformationData> {
/**
* {@inheritDoc}
*/
@Override
public Class<MemoryInformationData> getDataClass() {
return MemoryInformationData.class;
}
/**
* {@inheritDoc}
*/
@Override
protected String getSeriesName() {
return Series.MemoryInformation.NAME;
}
/**
* {@inheritDoc}
*/
@Override
protected void addFields(MemoryInformationData data, Builder builder) {
int count = data.getCount();
long freePhysMemory = 0;
if (data.getTotalFreePhysMemory() > 0) {
freePhysMemory = data.getTotalFreePhysMemory() / count;
}
long freeSwapSpace = 0;
if (data.getTotalFreeSwapSpace() > 0) {
freeSwapSpace = data.getTotalFreeSwapSpace() / count;
}
long committedHeapMemorySize = 0;
if (data.getTotalComittedHeapMemorySize() > 0) {
committedHeapMemorySize = data.getTotalComittedHeapMemorySize() / count;
}
long committedNonHeapMemorySize = 0;
if (data.getTotalComittedNonHeapMemorySize() > 0) {
committedNonHeapMemorySize = data.getTotalComittedNonHeapMemorySize() / count;
}
long usedHeapMemorySize = 0;
if (data.getTotalUsedHeapMemorySize() > 0) {
usedHeapMemorySize = data.getTotalUsedHeapMemorySize() / count;
}
long usedNonHeapMemorySize = 0;
if (data.getTotalUsedNonHeapMemorySize() > 0) {
usedNonHeapMemorySize = data.getTotalUsedNonHeapMemorySize() / count;
}
// fields
builder.addField(Series.MemoryInformation.FIELD_AVG_FREE_PHYS_MEMORY, freePhysMemory);
builder.addField(Series.MemoryInformation.FIELD_AVG_FREE_SWAP_SPACE, freeSwapSpace);
builder.addField(Series.MemoryInformation.FIELD_AVG_COMMITTED_HEAP_MEMORY, committedHeapMemorySize);
builder.addField(Series.MemoryInformation.FIELD_AVG_COMMITTED_NON_HEAP_MEMORY, committedNonHeapMemorySize);
builder.addField(Series.MemoryInformation.FIELD_AVG_USED_HEAP_MEMORY, usedHeapMemorySize);
builder.addField(Series.MemoryInformation.FIELD_MIN_USED_HEAP_MEMORY, data.getMinUsedHeapMemorySize());
builder.addField(Series.MemoryInformation.FIELD_MAX_USED_HEAP_MEMORY, data.getMaxUsedHeapMemorySize());
builder.addField(Series.MemoryInformation.FIELD_AVG_USED_NON_HEAP_MEMORY, usedNonHeapMemorySize);
builder.addField(Series.MemoryInformation.FIELD_MIN_USED_NON_HEAP_MEMORY, data.getMinUsedNonHeapMemorySize());
builder.addField(Series.MemoryInformation.FIELD_MAX_USED_NON_HEAP_MEMORY, data.getMaxUsedNonHeapMemorySize());
}
}