This documentation specifies the public API for controlling offline profiling, writing probes and the profiling platform that is part of JProfiler.
Offline profiling allows you to control certain aspects of the profiling agent at runtime. "Offline" refers to the fact that the JProfiler GUI does not have to be connected to the profiled process while profiling data is being recorded and snapshots are saved.
Please read "Reference->Offline profiling" in the documentation (directory $JPROFILER_HOME/doc or F1 in the JProfiler GUI) for an overview on how to use the Controller API and consult the javadoc for com.jprofiler.api.agent.Controller.
$JPROFILER_HOME/api/samples/offline contains a sample program that shows how to use offline profiling. The ant build script in that directory compiles and runs the sample.
Classes required for offline profiling are contained in $JPROFILER_HOME/bin/agent.jar.
Probes allow you to add functionality similar to the built-in JDBC, JNDI and JMS probes in JProfiler. With probes you can intercept calls to arbitrary methods, inspect parameters, return values, thrown exceptions and add payload information to the current call stack. Probes will get their own view in the "JEE & probes" section in the JProfiler GUI and payload statistics can also be shown in the "Call Tree" view.
The javadoc for com.jprofiler.api.agent.probe.ProbeProvider explains how to add probes to the runtime, com.jprofiler.api.agent.probe.InterceptorProbe and com.jprofiler.api.agent.probe.TelemetryProbe are the starting points for learning more about probes.
$JPROFILER_HOME/api/samples/probe contains a sample program that shows how to write a simple probe. The ant build script in that directory compiles and runs the sample. A different example for a probe is contained the platform example (see below).
Classes required for probes are contained in $JPROFILER_HOME/bin/agent.jar.
JProfiler is built on a profiling platform that allows you to write custom profilers. A custom profiler can analyze the JVM it is running in, one or multiple remote JVMs or saved snapshot files. In a custom profiler you have programmatic access to the profiling data through the platform API.
The javadoc for com.jprofiler.api.platform.connection.ConnectionFactory presents the entry point for writing a custom profiler. com.jprofiler.api.platform.connection.Connection is the main interface between the custom profiler and the profiling agent.
$JPROFILER_HOME/api/samples/platform contains a sample program that shows how to write a custom profiler. The ant build script in that directory compiles and runs the sample.
Classes required for the profiling platform are contained in $JPROFILER_HOME/bin/platform.jar.