1 /* 2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * The contents of this file are subject to the terms of either the Universal Permissive License 7 * v 1.0 as shown at http://oss.oracle.com/licenses/upl 8 * 9 * or the following license: 10 * 11 * Redistribution and use in source and binary forms, with or without modification, are permitted 12 * provided that the following conditions are met: 13 * 14 * 1. Redistributions of source code must retain the above copyright notice, this list of conditions 15 * and the following disclaimer. 16 * 17 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of 18 * conditions and the following disclaimer in the documentation and/or other materials provided with 19 * the distribution. 20 * 21 * 3. Neither the name of the copyright holder nor the names of its contributors may be used to 22 * endorse or promote products derived from this software without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR 25 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 26 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 30 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY 31 * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 package org.openjdk.jmc.flightrecorder.jdk; 34 35 import static org.openjdk.jmc.common.item.ItemQueryBuilder.fromWhere; 36 import static org.openjdk.jmc.flightrecorder.JfrAttributes.DURATION; 37 import static org.openjdk.jmc.flightrecorder.JfrAttributes.END_TIME; 38 import static org.openjdk.jmc.flightrecorder.JfrAttributes.EVENT_THREAD; 39 import static org.openjdk.jmc.flightrecorder.JfrAttributes.FLR_DATA_LOST; 40 import static org.openjdk.jmc.flightrecorder.JfrAttributes.START_TIME; 41 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.ALLOC_INSIDE_TLAB_AVG; 42 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.ALLOC_INSIDE_TLAB_SUM; 43 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.JAVA_ARGUMENTS; 44 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.JVM_ARGUMENTS; 45 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.JVM_NAME; 46 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.JVM_START_TIME; 47 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.JVM_VERSION; 48 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.OBJECT_COUNT_MAX_INSTANCES; 49 import static org.openjdk.jmc.flightrecorder.jdk.JdkAggregators.OBJECT_COUNT_MAX_SIZE; 50 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.ADAPTORS; 51 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.ALLOCATION_CLASS; 52 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.BLOCKING; 53 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CALLER; 54 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASSLOADER_LOADED_COUNT; 55 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASSLOADER_UNLOADED_COUNT; 56 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASS_DEFINED; 57 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASS_DEFINING_CLASSLOADER; 58 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASS_INITIATING_CLASSLOADER; 59 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASS_LOADED; 60 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.CLASS_UNLOADED; 61 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMMAND_LINE; 62 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_CODE_SIZE; 63 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_COMPILATION_ID; 64 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_FAILED_MESSAGE; 65 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_INLINED_SIZE; 66 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_METHOD; 67 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_OSR_COUNT; 68 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.COMPILER_STANDARD_COUNT; 69 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.ENTRIES; 70 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.ENVIRONMENT_KEY; 71 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.ENVIRONMENT_VALUE; 72 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.EXCEPTION_MESSAGE; 73 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.EXCEPTION_THROWABLES_COUNT; 74 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.EXCEPTION_THROWNCLASS; 75 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_CAUSE; 76 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_HEAPSPACE_COMMITTED; 77 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_HEAPSPACE_RESERVED; 78 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_ID; 79 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_LONGEST_PAUSE; 80 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_METASPACE_USED; 81 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.GC_SUM_OF_PAUSES; 82 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.HEAP_USED; 83 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_ADDRESS; 84 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_FILE_BYTES_READ; 85 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_FILE_BYTES_WRITTEN; 86 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_PATH; 87 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_PORT; 88 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_SOCKET_BYTES_READ; 89 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_SOCKET_BYTES_WRITTEN; 90 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.IO_TIMEOUT; 91 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.JVM_SYSTEM; 92 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.JVM_TOTAL; 93 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.MACHINE_TOTAL; 94 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.METHODS; 95 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_NMETHODS_ADAPTORS; 96 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_NMETHODS_ENTRIES; 97 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_NMETHODS_UNALLOCATED; 98 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_PROFILED_METHODS; 99 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_PROFILED_NMETHODS_ENTRIES; 100 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.NON_PROFILED_NMETHODS_UNALLOCATED; 101 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.OBJECT_CLASS; 102 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.OPERATION; 103 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.OS_MEMORY_TOTAL; 104 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.OS_MEMORY_USED; 105 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.PID; 106 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.PROFILED_ENTRIES; 107 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.PROFILED_METHODS; 108 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.PROFILED_UNALLOCATED; 109 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_DESTINATION; 110 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_DURATION; 111 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_ID; 112 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_MAX_AGE; 113 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_MAX_SIZE; 114 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_NAME; 115 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RECORDING_START; 116 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.REC_SETTING_FOR; 117 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.REC_SETTING_NAME; 118 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.REC_SETTING_VALUE; 119 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.RESERVED_SIZE; 120 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SAFEPOINT; 121 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_FRACTION_INDEX; 122 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_INDEX; 123 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_METHOD_FLUSHED; 124 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_METHOD_RECLAIMED; 125 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_METHOD_SWEPT; 126 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.SWEEP_METHOD_ZOMBIFIED; 127 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.THREAD_DUMP_RESULT; 128 import static org.openjdk.jmc.flightrecorder.jdk.JdkAttributes.UNALLOCATED; 129 130 import org.openjdk.jmc.common.item.Aggregators; 131 import org.openjdk.jmc.common.item.IItemQuery; 132 import org.openjdk.jmc.common.item.ItemFilters; 133 134 /** 135 * Item queries based on JDK flight recorder data. 136 */ 137 public final class JdkQueries { 138 139 public static final IItemQuery ALLOC_INSIDE_TLAB_BY_CLASS = fromWhere(JdkFilters.ALLOC_INSIDE_TLAB) 140 .select(ALLOC_INSIDE_TLAB_AVG).select(ALLOC_INSIDE_TLAB_SUM).groupBy(ALLOCATION_CLASS).build(); 141 public static final IItemQuery ALLOC_INSIDE_TLAB_BY_THREAD = fromWhere(JdkFilters.ALLOC_INSIDE_TLAB) 142 .select(ALLOC_INSIDE_TLAB_AVG).select(ALLOC_INSIDE_TLAB_SUM).groupBy(EVENT_THREAD).build(); 143 public static final IItemQuery JFR_DATA_LOST = fromWhere(JdkFilters.JFR_DATA_LOST) 144 .select(END_TIME, EVENT_THREAD, FLR_DATA_LOST).build(); 145 public static final IItemQuery CLASS_LOAD = fromWhere(JdkFilters.CLASS_LOAD) 146 .select(CLASS_LOADED, CLASS_DEFINING_CLASSLOADER, CLASS_INITIATING_CLASSLOADER, EVENT_THREAD, DURATION) 147 .build(); 148 public static final IItemQuery CLASS_DEFINE = fromWhere(JdkFilters.CLASS_DEFINE) 149 .select(CLASS_DEFINED, CLASS_DEFINING_CLASSLOADER).build(); 150 public static final IItemQuery CLASS_LOAD_STATISTICS = fromWhere(JdkFilters.CLASS_LOAD_STATISTICS) 151 .select(CLASSLOADER_LOADED_COUNT, CLASSLOADER_UNLOADED_COUNT).build(); 152 public static final IItemQuery CLASS_UNLOAD = fromWhere(JdkFilters.CLASS_UNLOAD) 153 .select(CLASS_UNLOADED, CLASS_DEFINING_CLASSLOADER).build(); 154 public static final IItemQuery CODE_CACHE_ENTRIES = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 155 .select(ENTRIES, METHODS, ADAPTORS).build(); 156 public static final IItemQuery CODE_CACHE_ENTRIES_SEGMENTED = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 157 .select(PROFILED_ENTRIES, NON_PROFILED_NMETHODS_ENTRIES, NON_NMETHODS_ENTRIES).build(); 158 public static final IItemQuery CODE_CACHE_ADAPTORS_SEGMENTED = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 159 .select(NON_NMETHODS_ADAPTORS).build(); 160 public static final IItemQuery CODE_CACHE_METHODS_SEGMENTED = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 161 .select(PROFILED_METHODS, NON_PROFILED_METHODS).build(); 162 public static final IItemQuery CODE_CACHE_FULL = fromWhere(JdkFilters.CODE_CACHE_FULL) 163 .select(ENTRIES, METHODS, ADAPTORS).build(); 164 public static final IItemQuery CODE_CACHE_UNALLOCATED = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 165 .select(UNALLOCATED).build(); 166 public static final IItemQuery CODE_CACHE_UNALLOCATED_SEGMENTED = fromWhere(JdkFilters.CODE_CACHE_STATISTICS) 167 .select(PROFILED_UNALLOCATED, NON_PROFILED_NMETHODS_UNALLOCATED, NON_NMETHODS_UNALLOCATED).build(); 168 public static final IItemQuery CODE_CACHE_RESERVED = fromWhere(JdkFilters.CODE_CACHE_CONFIGURATION) 169 .select(RESERVED_SIZE).build(); 170 public static final IItemQuery CODE_CACHE_ALLOCATION = fromWhere( 171 ItemFilters.or(JdkFilters.CODE_CACHE_STATISTICS, JdkFilters.CODE_CACHE_CONFIGURATION)) 172 .select(RESERVED_SIZE, UNALLOCATED).build(); 173 public static final IItemQuery CODE_SWEEPS = fromWhere(JdkFilters.SWEEP_CODE_CACHE) 174 .select(SWEEP_METHOD_FLUSHED, SWEEP_METHOD_RECLAIMED, SWEEP_METHOD_SWEPT, SWEEP_METHOD_ZOMBIFIED).build(); 175 public static final IItemQuery COMPILATION = fromWhere(JdkFilters.COMPILATION) 176 .select(COMPILER_COMPILATION_ID, COMPILER_METHOD, DURATION, COMPILER_CODE_SIZE, COMPILER_INLINED_SIZE) 177 .build(); 178 public static final IItemQuery COMPILER_FAILURE = fromWhere(JdkFilters.COMPILER_FAILURE) 179 .select(COMPILER_COMPILATION_ID, COMPILER_FAILED_MESSAGE).build(); 180 public static final IItemQuery COMPILER_STATS = fromWhere(JdkFilters.COMPILER_STATS) 181 .select(COMPILER_STANDARD_COUNT, COMPILER_OSR_COUNT).build(); 182 public static final IItemQuery CONCURRENT_MODE_FAILURE = fromWhere(JdkFilters.CONCURRENT_MODE_FAILURE) 183 .select(GC_ID, END_TIME).build(); 184 public static final IItemQuery CPU_USAGE_SIMPLE_QUERY = fromWhere(JdkFilters.CPU_LOAD) 185 .select(MACHINE_TOTAL, JVM_TOTAL).build(); 186 public static final IItemQuery CPU_USAGE_DETAILED_GRAPH_QUERY = fromWhere(JdkFilters.CPU_LOAD) 187 .select(MACHINE_TOTAL, JVM_TOTAL, JVM_SYSTEM).build(); 188 public static final IItemQuery ENVIRONMENT_VARIABLE = fromWhere(JdkFilters.ENVIRONMENT_VARIABLE) 189 .select(ENVIRONMENT_KEY, ENVIRONMENT_VALUE).build(); 190 public static final IItemQuery ERRORS = fromWhere(JdkFilters.ERRORS) 191 .select(EXCEPTION_THROWNCLASS, EVENT_THREAD, EXCEPTION_MESSAGE).build(); 192 public static final IItemQuery EXECUTION_SAMPLE = fromWhere(JdkFilters.EXECUTION_SAMPLE) 193 .select(END_TIME, EVENT_THREAD).build(); 194 public static final IItemQuery FILE_READ = fromWhere(JdkFilters.FILE_READ) 195 .select(DURATION, IO_PATH, EVENT_THREAD, IO_FILE_BYTES_READ).build(); 196 public static final IItemQuery FILE_WRITE = fromWhere(JdkFilters.FILE_WRITE) 197 .select(DURATION, IO_PATH, EVENT_THREAD, IO_FILE_BYTES_WRITTEN).build(); 198 public static final IItemQuery GARBAGE_COLLECTION = fromWhere(JdkFilters.GARBAGE_COLLECTION) 199 .select(GC_ID, GC_CAUSE, GC_LONGEST_PAUSE, GC_SUM_OF_PAUSES).build(); 200 public static final IItemQuery GC_PAUSE = fromWhere(JdkFilters.GC_PAUSE).select(GC_ID, DURATION).build(); 201 public static final IItemQuery HEAP_SUMMARY_AFTER_GC = fromWhere(JdkFilters.HEAP_SUMMARY_AFTER_GC) 202 .select(START_TIME).select(HEAP_USED).build(); 203 public static final IItemQuery HEAP_SUMMARY = fromWhere(JdkFilters.HEAP_SUMMARY) 204 .select(HEAP_USED, GC_HEAPSPACE_COMMITTED, GC_HEAPSPACE_RESERVED).build(); 205 public static final IItemQuery METASPACE_SUMMARY_AFTER_GC = fromWhere(JdkFilters.METASPACE_SUMMARY_AFTER_GC) 206 .select(GC_ID, END_TIME, GC_METASPACE_USED).build(); 207 public static final IItemQuery NATIVE_LIBRARIES = fromWhere(ItemFilters.type(JdkTypeIDs.NATIVE_LIBRARY)) 208 .select(JdkAttributes.NATIVE_LIBRARY_NAME, JdkAttributes.BASE_ADDRESS, JdkAttributes.TOP_ADDRESS) 209 .select(Aggregators.count()).build(); 210 public static final IItemQuery NO_RMI_SOCKET_READ = fromWhere(JdkFilters.NO_RMI_SOCKET_READ) 211 .select(DURATION, IO_ADDRESS, IO_PORT, IO_TIMEOUT, EVENT_THREAD, IO_SOCKET_BYTES_READ).build(); 212 public static final IItemQuery NO_RMI_SOCKET_WRITE = fromWhere(JdkFilters.NO_RMI_SOCKET_WRITE) 213 .select(DURATION, IO_ADDRESS, IO_PORT, EVENT_THREAD, IO_SOCKET_BYTES_WRITTEN).build(); 214 public static final IItemQuery OBJECT_COUNT = fromWhere(JdkFilters.OBJECT_COUNT).select(OBJECT_COUNT_MAX_INSTANCES) 215 .select(OBJECT_COUNT_MAX_SIZE).groupBy(OBJECT_CLASS).build(); 216 public static final IItemQuery OS_MEMORY_SUMMARY = fromWhere(JdkFilters.OS_MEMORY_SUMMARY) 217 .select(OS_MEMORY_USED, OS_MEMORY_TOTAL).build(); 218 public static final IItemQuery PROCESSES = fromWhere(JdkFilters.PROCESSES).select(PID, COMMAND_LINE, END_TIME) 219 .groupBy(PID).build(); 220 public static final IItemQuery RECORDING_SETTINGS = fromWhere(JdkFilters.RECORDING_SETTING) 221 .select(REC_SETTING_FOR, REC_SETTING_NAME, REC_SETTING_VALUE, END_TIME).build(); 222 public static final IItemQuery RECORDINGS = fromWhere(JdkFilters.RECORDINGS).select(RECORDING_NAME, RECORDING_ID, 223 RECORDING_START, RECORDING_DURATION, RECORDING_MAX_SIZE, RECORDING_MAX_AGE, RECORDING_DESTINATION).build(); 224 public static final IItemQuery SWEEP_CODE_CACHE = fromWhere(JdkFilters.SWEEP_CODE_CACHE) 225 .select(DURATION, SWEEP_FRACTION_INDEX, SWEEP_INDEX, SWEEP_METHOD_FLUSHED, SWEEP_METHOD_RECLAIMED, 226 SWEEP_METHOD_SWEPT, SWEEP_METHOD_ZOMBIFIED) 227 .build(); 228 public static final IItemQuery SYSTEM_PROPERTIES = fromWhere(JdkFilters.SYSTEM_PROPERTIES) 229 .select(ENVIRONMENT_KEY, ENVIRONMENT_VALUE).build(); 230 public static final IItemQuery THREAD_DUMP = fromWhere(JdkFilters.THREAD_DUMP).select(END_TIME, THREAD_DUMP_RESULT) 231 .build(); 232 public static final IItemQuery THROWABLES_STATISTICS = fromWhere(JdkFilters.THROWABLES_STATISTICS) 233 .select(EXCEPTION_THROWABLES_COUNT, END_TIME).build(); 234 public static final IItemQuery VM_INFO = fromWhere(JdkFilters.VM_INFO) 235 .select(JVM_NAME, JVM_VERSION, JVM_START_TIME, JAVA_ARGUMENTS, JVM_ARGUMENTS).build(); 236 public static final IItemQuery VM_OPERATIONS = fromWhere(JdkFilters.VM_OPERATIONS) 237 .select(DURATION, OPERATION, BLOCKING, SAFEPOINT, EVENT_THREAD, CALLER).build(); 238 public static final IItemQuery VM_OPERATIONS_BLOCKING = fromWhere(JdkFilters.VM_OPERATIONS_BLOCKING_OR_SAFEPOINT) 239 .select(DURATION, OPERATION, BLOCKING, SAFEPOINT, EVENT_THREAD, CALLER).build(); 240 241 }