101 import org.openjdk.jmc.common.item.IMemberAccessor; 102 import org.openjdk.jmc.common.item.IType; 103 import org.openjdk.jmc.common.item.ItemFilters; 104 import org.openjdk.jmc.common.unit.IQuantity; 105 import org.openjdk.jmc.common.unit.UnitLookup; 106 import org.openjdk.jmc.flightrecorder.JfrAttributes; 107 import org.openjdk.jmc.flightrecorder.jdk.messages.internal.Messages; 108 109 /** 110 * Various useful aggregators based on JDK flight recorder data. 111 */ 112 public final class JdkAggregators { 113 114 // VM Info 115 public static final IAggregator<String, ?> JVM_NAME = distinctAsString(VM_INFO, JdkAttributes.JVM_NAME); 116 public static final IAggregator<IQuantity, ?> JVM_START_TIME = min(JdkAttributes.JVM_START_TIME.getName(), null, 117 VM_INFO, JdkAttributes.JVM_START_TIME); 118 public static final IAggregator<String, ?> JVM_VERSION = distinctAsString(VM_INFO, JdkAttributes.JVM_VERSION); 119 public static final IAggregator<String, ?> JAVA_ARGUMENTS = distinctAsString(VM_INFO, JdkAttributes.JAVA_ARGUMENTS); 120 public static final IAggregator<String, ?> JVM_ARGUMENTS = distinctAsString(VM_INFO, JdkAttributes.JVM_ARGUMENTS); 121 // CPU info 122 public static final IAggregator<IQuantity, ?> MIN_HW_THREADS = min(HW_THREADS.getName(), null, CPU_INFORMATION, 123 HW_THREADS); 124 public static final IAggregator<IQuantity, ?> MIN_NUMBER_OF_CORES = min(NUMBER_OF_CORES.getName(), null, 125 CPU_INFORMATION, NUMBER_OF_CORES); 126 public static final IAggregator<IQuantity, ?> MIN_NUMBER_OF_SOCKETS = min(NUMBER_OF_SOCKETS.getName(), null, 127 CPU_INFORMATION, NUMBER_OF_SOCKETS); 128 public static final IAggregator<String, ?> CPU_DESCRIPTION = distinctAsString(CPU_INFORMATION, 129 JdkAttributes.CPU_DESCRIPTION); 130 public static final IAggregator<String, ?> CPU_TYPE = distinctAsString(CPU_INFORMATION, JdkAttributes.CPU_TYPE); 131 // OS info 132 public static final IAggregator<String, ?> OS_VERSION = distinctAsString(OS_INFORMATION, JdkAttributes.OS_VERSION); 133 public static final IAggregator<IQuantity, ?> MAX_USED_MEMORY = max( 134 Messages.getString(Messages.AGGR_MAX_USED_MEMORY), null, OS_MEMORY_SUMMARY, JdkAttributes.OS_MEMORY_USED); 135 public static final IAggregator<IQuantity, ?> MIN_TOTAL_MEMORY = min( 136 Messages.getString(Messages.AGGR_MIN_TOTAL_MEMORY), null, OS_MEMORY_SUMMARY, JdkAttributes.OS_MEMORY_TOTAL); 137 // Heap config 138 public static final IAggregator<IQuantity, ?> HEAP_CONF_MAX_SIZE = max(HEAP_MAX_SIZE.getName(), null, HEAP_CONF, 139 HEAP_MAX_SIZE); 140 public static final IAggregator<IQuantity, ?> HEAP_CONF_MIN_SIZE = min(HEAP_MIN_SIZE.getName(), null, HEAP_CONF, | 101 import org.openjdk.jmc.common.item.IMemberAccessor; 102 import org.openjdk.jmc.common.item.IType; 103 import org.openjdk.jmc.common.item.ItemFilters; 104 import org.openjdk.jmc.common.unit.IQuantity; 105 import org.openjdk.jmc.common.unit.UnitLookup; 106 import org.openjdk.jmc.flightrecorder.JfrAttributes; 107 import org.openjdk.jmc.flightrecorder.jdk.messages.internal.Messages; 108 109 /** 110 * Various useful aggregators based on JDK flight recorder data. 111 */ 112 public final class JdkAggregators { 113 114 // VM Info 115 public static final IAggregator<String, ?> JVM_NAME = distinctAsString(VM_INFO, JdkAttributes.JVM_NAME); 116 public static final IAggregator<IQuantity, ?> JVM_START_TIME = min(JdkAttributes.JVM_START_TIME.getName(), null, 117 VM_INFO, JdkAttributes.JVM_START_TIME); 118 public static final IAggregator<String, ?> JVM_VERSION = distinctAsString(VM_INFO, JdkAttributes.JVM_VERSION); 119 public static final IAggregator<String, ?> JAVA_ARGUMENTS = distinctAsString(VM_INFO, JdkAttributes.JAVA_ARGUMENTS); 120 public static final IAggregator<String, ?> JVM_ARGUMENTS = distinctAsString(VM_INFO, JdkAttributes.JVM_ARGUMENTS); 121 122 public static final IAggregator<IQuantity, ?> JVM_SHUTDOWN_TIME = min(Messages.getString(Messages.ATTR_SHUTDOWN_TIME), null, 123 JdkTypeIDs.VM_SHUTDOWN, JfrAttributes.START_TIME); 124 public static final IAggregator<String, ?> JVM_SHUTDOWN_REASON = distinctAsString(JdkTypeIDs.VM_SHUTDOWN, 125 JdkAttributes.SHUTDOWN_REASON); 126 // CPU info 127 public static final IAggregator<IQuantity, ?> MIN_HW_THREADS = min(HW_THREADS.getName(), null, CPU_INFORMATION, 128 HW_THREADS); 129 public static final IAggregator<IQuantity, ?> MIN_NUMBER_OF_CORES = min(NUMBER_OF_CORES.getName(), null, 130 CPU_INFORMATION, NUMBER_OF_CORES); 131 public static final IAggregator<IQuantity, ?> MIN_NUMBER_OF_SOCKETS = min(NUMBER_OF_SOCKETS.getName(), null, 132 CPU_INFORMATION, NUMBER_OF_SOCKETS); 133 public static final IAggregator<String, ?> CPU_DESCRIPTION = distinctAsString(CPU_INFORMATION, 134 JdkAttributes.CPU_DESCRIPTION); 135 public static final IAggregator<String, ?> CPU_TYPE = distinctAsString(CPU_INFORMATION, JdkAttributes.CPU_TYPE); 136 // OS info 137 public static final IAggregator<String, ?> OS_VERSION = distinctAsString(OS_INFORMATION, JdkAttributes.OS_VERSION); 138 public static final IAggregator<IQuantity, ?> MAX_USED_MEMORY = max( 139 Messages.getString(Messages.AGGR_MAX_USED_MEMORY), null, OS_MEMORY_SUMMARY, JdkAttributes.OS_MEMORY_USED); 140 public static final IAggregator<IQuantity, ?> MIN_TOTAL_MEMORY = min( 141 Messages.getString(Messages.AGGR_MIN_TOTAL_MEMORY), null, OS_MEMORY_SUMMARY, JdkAttributes.OS_MEMORY_TOTAL); 142 // Heap config 143 public static final IAggregator<IQuantity, ?> HEAP_CONF_MAX_SIZE = max(HEAP_MAX_SIZE.getName(), null, HEAP_CONF, 144 HEAP_MAX_SIZE); 145 public static final IAggregator<IQuantity, ?> HEAP_CONF_MIN_SIZE = min(HEAP_MIN_SIZE.getName(), null, HEAP_CONF, |