use of org.spf4j.stackmonitor.SampleNode in project spf4j by zolyfarkas.
the class Explorer method openFile.
private void openFile(final File file) throws IOException {
String fileName = file.getName();
JInternalFrame frame;
if (Spf4jFileFilter.TSDB.accept(file)) {
frame = new TSDBViewJInternalFrame(file);
frame.setVisible(true);
desktopPane.add(frame, javax.swing.JLayeredPane.DEFAULT_LAYER);
} else if (Spf4jFileFilter.TSDB2.accept(file)) {
frame = new TSDB2ViewJInternalFrame(file);
frame.setVisible(true);
desktopPane.add(frame, javax.swing.JLayeredPane.DEFAULT_LAYER);
} else if (Spf4jFileFilter.AVRO_TABLEDEF.accept(file)) {
frame = new MStoreViewJInternalFrame(file);
frame.setVisible(true);
desktopPane.add(frame, javax.swing.JLayeredPane.DEFAULT_LAYER);
} else if (Spf4jFileFilter.SSDUMP.accept(file)) {
SampleNode samples = loadLegacyFormat(file);
setFrames(samples, fileName);
} else if (Spf4jFileFilter.SSDUMP2.accept(file) || Spf4jFileFilter.SSDUMP2_GZ.accept(file)) {
SampleNode samples = org.spf4j.ssdump2.Converter.load(file);
setFrames(samples, fileName);
} else if (Spf4jFileFilter.SSDUMP3.accept(file) || Spf4jFileFilter.SSDUMP3_GZ.accept(file)) {
Map<String, SampleNode> loadLabeledDumps = org.spf4j.ssdump2.Converter.loadLabeledDumps(file);
setFrames(loadLabeledDumps, fileName);
} else if (Spf4jFileFilter.D3_JSON.accept(file)) {
try (BufferedReader br = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
Pair<Method, SampleNode> parse = SampleNode.parseD3Json(br);
setFrames(parse.getSecond(), fileName);
}
} else if (Spf4jFileFilter.SPF4J_JSON.accept(file)) {
try (BufferedReader br = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
Pair<Method, SampleNode> parse = SampleNode.parse(br);
setFrames(parse.getSecond(), fileName);
}
} else if (Spf4jFileFilter.PROFILE_AVRO.accept(file)) {
setFrames(new AvroStackSampleSupplier(file.toPath()), fileName);
} else {
throw new IOException("Unsupported file format " + fileName);
}
}
use of org.spf4j.stackmonitor.SampleNode in project spf4j by zolyfarkas.
the class StackPanelBase method actionPerformed.
@Override
public final void actionPerformed(final ActionEvent e) {
final String actionCommand = e.getActionCommand();
switch(actionCommand) {
case "FILTER":
history.addLast(Pair.of(method, samples));
filter();
break;
case "DRILL":
history.addLast(Pair.of(method, samples));
drill();
break;
case "BACK":
Pair<Method, SampleNode> prev = history.pollLast();
if (prev != null) {
updateSamples(prev.getFirst(), prev.getSecond());
repaint();
}
break;
case "COPY":
final String detail = getDetail(new Point(xx, yy));
java.awt.Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new Transferable() {
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] { DataFlavor.stringFlavor };
}
@Override
public boolean isDataFlavorSupported(final DataFlavor flavor) {
return flavor.equals(DataFlavor.stringFlavor);
}
@Override
public Object getTransferData(final DataFlavor flavor) {
return detail;
}
}, new ClipboardOwner() {
@Override
public void lostOwnership(final Clipboard clipboard, final Transferable contents) {
}
});
break;
default:
break;
}
}
use of org.spf4j.stackmonitor.SampleNode in project spf4j by zolyfarkas.
the class FlameStackPanelTest method testHotStackPanelCycle.
@Test
public void testHotStackPanelCycle() throws IOException, InterruptedException {
Pair<Method, SampleNode> parse = SampleNode.parse(new StringReader("{\"ROOT@65406@ZMacBookPro-2.local\":2,\"c\":" + "[{\"a@C\":1,\"c\":[{\"b@C\":1}]},{\"b@C\":1,\"c\":[{\"a@C\":1}]}]}"));
HotFlameStackPanel panel = new HotFlameStackPanel(parse.getFirst(), parse.getSecond(), new LinkedList<>());
testPanel(panel);
}
use of org.spf4j.stackmonitor.SampleNode in project spf4j by zolyfarkas.
the class Converter method fromProtoToSampleNode.
public static SampleNode fromProtoToSampleNode(final ProtoSampleNodes.SampleNodeOrBuilder node) {
SampleNode result = new SampleNode(node.getCount());
List<ProtoSampleNodes.SamplePair> sns = node.getSubNodesList();
if (sns != null) {
for (ProtoSampleNodes.SamplePair pair : sns) {
final ProtoSampleNodes.Method method = pair.getMethod();
result.put(new Method(method.getDeclaringClass(), method.getMethodName()), fromProtoToSampleNode(pair.getNode()));
}
}
return result;
}
Aggregations