public String getDisplayName() { return descriptor.displayName(); }
new LocalVirtualMachine(vmid.intValue(), vmd.displayName(), attachable, address));
@Override public List<VMDescriptorDTO> listLocalJVMs() { List<VMDescriptorDTO> rc = new ArrayList<>(); try { List<VirtualMachineDescriptor> processes = VirtualMachine.list(); for (VirtualMachineDescriptor process : processes) { VMDescriptorDTO dto = new VMDescriptorDTO(process); dto.setAgentUrl(agentStatus(dto.getId())); String alias = getVmAlias(process.displayName(), dto.getAgentUrl()); dto.setAlias(alias); // provide fine grained url details if (dto.getAgentUrl() != null) { try { URL url = new URL(dto.getAgentUrl()); dto.setScheme(url.getProtocol()); dto.setHostname(url.getHost()); dto.setPort(url.getPort()); dto.setPath(url.getPath()); } catch (Exception e) { // ignore } } rc.add(dto); } } catch (Exception e) { LOG.warn("Failed to get local JVM processes due to: {}", e.getMessage()); throw new RuntimeException("Failed to get local JVM processes due to: " + e.getMessage(), e); } return rc; }
public String getDisplayName() { return vmd.displayName(); }
@Override public int compare(VirtualMachineDescriptor o1, VirtualMachineDescriptor o2) { return o1.displayName().compareTo(o2.displayName()); } });
private static boolean pickThisOne(VirtualMachineDescriptor virtualMachineDescriptor) { if ("com.bagri.server.hazelcast.BagriCacheServer".equals(virtualMachineDescriptor.displayName())) { return true; } return false; }
@Override public String getProcessName() { String rawName = vmd.displayName(); int firstSpace = rawName.indexOf(' '); return firstSpace < 0 ? rawName : rawName.substring(0, firstSpace); }
public static String list() { StringBuilder msg = new StringBuilder(); for (VirtualMachineDescriptor vm : VirtualMachine.list()) { msg.append(" ").append(vm.id()).append(" ").append(vm.displayName()).append("\n"); } return msg.toString(); }
private List<JavaProcessId> refine(List<VirtualMachineDescriptor> vms) { JavaProcessId[] jpids = new JavaProcessId[vms.size()]; for(int i = 0 ; i != jpids.length; ++i) { VirtualMachineDescriptor vm = vms.get(i); jpids[i] = new JavaProcessId(Long.parseLong(vm.id()), vm.displayName()); } List<JavaProcessId> result = Arrays.asList(jpids); return result; }
private String getProcesssName(long pid) { List<VirtualMachineDescriptor> vms = getVmList(); for(VirtualMachineDescriptor vm: vms) { if (vm.id().equals(String.valueOf(pid))) { return vm.displayName(); } } return ""; }
String name = ... List vms = VirtualMachine.list(); for (VirtualMachineDescriptor vmd: vms) { if (vmd.displayName().equals(name)) { VirtualMachine vm = VirtualMachine.attach(vmd.id()); String agent = ... vm.loadAgent(agent); // ... } }
String name = ... List vms = VirtualMachine.list(); for (VirtualMachineDescriptor vmd: vms) { if (vmd.displayName().equals(name)) { VirtualMachine vm = VirtualMachine.attach(vmd.id()); String agent = ... vm.loadAgent(agent); // ... } }
List<VirtualMachineDescriptor> descriptors = VirtualMachine.list(); for (VirtualMachineDescriptor descriptor : descriptors) { System.out.println("Found JVM: " + descriptor.displayName()); try { VirtualMachine vm = VirtualMachine.attach(descriptor); String version = vm.getSystemProperties().getProperty("java.runtime.version"); System.out.println(" Runtime Version: " + version); String connectorAddress = vm.getAgentProperties().getProperty("com.sun.management.jmxremote.localConnectorAddress"); if (connectorAddress == null) { connectorAddress = vm.getAgentProperties().getProperty("com.sun.management.jmxremote.localConnectorAddress"); } JMXServiceURL url = new JMXServiceURL(connectorAddress); JMXConnector connector = JMXConnectorFactory.connect(url); MBeanServerConnection mbs = connector.getMBeanServerConnection(); ObjectName threadName = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME); Integer threadCount = (Integer)mbs.getAttribute(threadName, "ThreadCount"); System.out.println(" Thread count: " + threadCount); } catch (Exception e) { // ... }
public static VMInfo[] availableVMs() { List<VirtualMachineDescriptor> vmds = VirtualMachine.list(); VMInfo[] vmInfo = new VMInfo[vmds.size()]; int i = 0; for (VirtualMachineDescriptor vmd : vmds) { vmInfo[i++] = new VMInfo(vmd.id(), vmd.displayName()); } return vmInfo; }
static String selectProcess() { System.out.println("Which java process to attache:"); final List<VirtualMachineDescriptor> list = VirtualMachine.list(); // remove current process for (Iterator<VirtualMachineDescriptor> iterator = list.iterator(); iterator.hasNext(); ) { VirtualMachineDescriptor vm = iterator.next(); if (vm.id().equals(pid())) iterator.remove(); } for (int i = 0; i < list.size(); i++) { final VirtualMachineDescriptor vm = list.get(i); System.out.printf("%d) %-5s %s\n", i + 1, vm.id(), vm.displayName()); } Scanner in = new Scanner(System.in); while (true) { System.out.print("?# "); final String select = in.nextLine(); try { final int idx = Integer.parseInt(select); if (idx > 0 && idx <= list.size()) { return list.get(idx - 1).id(); } System.out.println("Invalid selection!"); } catch (NumberFormatException e) { System.out.println("Invalid input, not number!"); } } }
/** * For testing / investigation purposes. Dumps out as much information as possible * that can be onbtained from the jvm, without accessing JMX. */ public void dumpJvmInfo() throws IOException { System.out.println("--- vm infos ----"); System.out.println("id = "+vm.id()); System.out.println("displayName = "+vmd.displayName()); dump("agentProperties", vm.getAgentProperties()); dump("systemProps", vm.getSystemProperties()); System.out.println("-----------------"); }
System.out.println("Found JVM: " + descriptor.displayName()); try { VirtualMachine vm = VirtualMachine.attach(descriptor);
@Override public JavaProcessId call() throws Exception { ProcessDetails pd = new ProcessDetails(Long.parseLong(vm.id()), vm.displayName()); if (matcher.evaluate(pd)) { return new JavaProcessId(pd.pid, pd.name); } else { return null; } }
private String getJmxUrlForProcessRegex(String processRegex) throws com.sun.tools.attach.AttachNotSupportedException, IOException { for (com.sun.tools.attach.VirtualMachineDescriptor vmd : com.sun.tools.attach.VirtualMachine.list()) { if (vmd.displayName().matches(processRegex)) { com.sun.tools.attach.VirtualMachine vm = com.sun.tools.attach.VirtualMachine.attach(vmd); String connectorAddress = vm.getAgentProperties().getProperty(CONNECTOR_ADDRESS); // If jmx agent is not running in VM, load it and return the connector url if (connectorAddress == null) { loadJmxAgent(vm); // agent is started, get the connector address connectorAddress = vm.getAgentProperties().getProperty(CONNECTOR_ADDRESS); } return connectorAddress; } } throw new IOException( "No match found. Available JVMs can be listed with the `list_jvms` command."); }
String vmName = cleanCommandLineArgs(vmd.displayName());