package rocks.inspectit.server.influx.builder; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; 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.SystemInformationData; import rocks.inspectit.shared.all.communication.data.VmArgumentData; /** * Point builder for the {@link SystemInformationData}. * * @author Ivan Senic * @author Alexander Wert * */ @Component public class SystemInformationPointBuilder extends DefaultDataPointBuilder<SystemInformationData> { /** * {@inheritDoc} */ @Override public Class<SystemInformationData> getDataClass() { return SystemInformationData.class; } /** * {@inheritDoc} */ @Override protected String getSeriesName() { return Series.SystemInformation.NAME; } /** * {@inheritDoc} */ @Override protected void addFields(SystemInformationData data, Builder builder) { StringBuilder vmAttributes = new StringBuilder(); boolean first = true; if (CollectionUtils.isNotEmpty(data.getVmSet())) { for (VmArgumentData vmArgument : data.getVmSet()) { if (first) { first = false; } else { vmAttributes.append(System.getProperty("line.separator")); } vmAttributes.append(vmArgument.getVmName()); vmAttributes.append('='); vmAttributes.append(vmArgument.getVmValue()); } } // fields builder.addField(Series.SystemInformation.FIELD_ARCHITECTURE, StringUtils.defaultString(data.getArchitecture())); builder.addField(Series.SystemInformation.FIELD_NUM_AVAILABLE_PROCESSORS, data.getAvailableProcessors()); builder.addField(Series.SystemInformation.FIELD_BOOT_CLASS_PATH, StringUtils.defaultString(data.getBootClassPath())); builder.addField(Series.SystemInformation.FIELD_CLASS_PATH, StringUtils.defaultString(data.getClassPath())); builder.addField(Series.SystemInformation.FIELD_INIT_HEAP_MEMORY_SIZE, data.getInitHeapMemorySize()); builder.addField(Series.SystemInformation.FIELD_INIT_NON_HEAP_MEMORY_SIZE, data.getInitNonHeapMemorySize()); builder.addField(Series.SystemInformation.FIELD_JIT_COMPILER_NAME, StringUtils.defaultString(data.getJitCompilerName())); builder.addField(Series.SystemInformation.FIELD_LIBRARY_PATH, StringUtils.defaultString(data.getLibraryPath())); builder.addField(Series.SystemInformation.FIELD_MAX_HEAP_SIZE, data.getMaxHeapMemorySize()); builder.addField(Series.SystemInformation.FIELD_MAX_NON_HEAP_SIZE, data.getMaxNonHeapMemorySize()); builder.addField(Series.SystemInformation.FIELD_OS_NAME, StringUtils.defaultString(data.getOsName())); builder.addField(Series.SystemInformation.FIELD_OS_VERSION, StringUtils.defaultString(data.getOsVersion())); builder.addField(Series.SystemInformation.FIELD_TOTAL_PHYS_MEMORY, data.getTotalPhysMemory()); builder.addField(Series.SystemInformation.FIELD_TOTAL_SWAP_SPACE, data.getTotalSwapSpace()); builder.addField(Series.SystemInformation.FIELD_VM_NAME, StringUtils.defaultString(data.getVmName())); builder.addField(Series.SystemInformation.FIELD_VM_SPEC_NAME, StringUtils.defaultString(data.getVmSpecName())); builder.addField(Series.SystemInformation.FIELD_VM_VENDOR, StringUtils.defaultString(data.getVmVendor())); builder.addField(Series.SystemInformation.FIELD_VM_VERSION, StringUtils.defaultString(data.getVmVersion())); builder.addField(Series.SystemInformation.FIELD_VM_ATTRIBUTES, vmAttributes.toString()); } }