JProfiler API documentation


com.jprofiler.api.agent.probe
Class ProbeMetaData

java.lang.Object
  extended by com.jprofiler.api.agent.probe.ProbeMetaData

public abstract class ProbeMetaData
extends java.lang.Object

The meta data defines the capabilities of a probe. At startup, each probe is queried once for its meta data via a call to Probe.getMetaData(). In that method, you create an instance with create(String) and call its methods to configure the probe. The meta data provides a fluent interface, so you can append method calls like in ProbeMetaData.create("Test").events(true).recordOnStartup(false).

The help topic on custom probes in the bundled documentation explains how to develop custom probes.


Constructor Summary
ProbeMetaData()
           
 
Method Summary
abstract  ProbeMetaData addAdditionalControlObjectData(java.lang.String name, DataType dataType, boolean nested)
          Configures an additional data column for control objects.
abstract  ProbeMetaData addAdditionalData(java.lang.String name, DataType dataType)
          Configures an additional data column for probe events.
abstract  ProbeMetaData addCustomTelemetry(java.lang.String name, Unit unit, float factor)
          Configures a custom telemetry.
abstract  ProbeMetaData addOpenControlObjectTelemetry(java.lang.String name)
          Configures a telemetry that shows the number of open control objects.
abstract  ProbeMetaData annotatePayloads(boolean annotatePayloads)
          Configures if the probe should annotate data into the call tree view.
abstract  ProbeMetaData closeTypeName(java.lang.String name)
          Sets the name of the automatic event type for the closing of a control object.
abstract  ProbeMetaData controlObjectView(boolean controlObjectView)
          Configures if the probe publishes control objects.
static ProbeMetaData create(java.lang.String name)
          Creates an meta-data instance.
abstract  ProbeMetaData customColors(int[] customColors)
          Configures the colors of the custom events in the time line view.
abstract  ProbeMetaData customTypeNames(java.lang.String[] typeNames)
          Configures the custom event types and their names.
abstract  ProbeMetaData description(java.lang.String description)
          Sets the description of the probe.
abstract  ProbeMetaData events(boolean events)
          Configures if probe retain single events.
abstract  ProbeMetaData openTypeName(java.lang.String name)
          Sets the name of the automatic event type for the opening of a control object.
abstract  ProbeMetaData payload(boolean payload)
          Configures if the probe collects payload information.
abstract  ProbeMetaData payloadName(java.lang.String payloadName)
          Sets the name of the payload.
abstract  ProbeMetaData recordOnStartup(boolean startRecording)
          Configures if the probe should record data on startup.
abstract  ProbeMetaData startTelemetryGroup(java.lang.String name)
          Starts a group of telemetries that can be displayed in the same graph.
abstract  ProbeMetaData telemetry(boolean telemetry)
          Configures if the probe collects telemetry data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProbeMetaData

public ProbeMetaData()
Method Detail

create

public static ProbeMetaData create(java.lang.String name)
Creates an meta-data instance. For custom probes defined the JProfiler GUI, you should not call this method, since a meta data instance is already passed to the meta-data script. In that case, the name and description of the probe are already set.

Parameters:
name - the name of the probe. This name is displayed in the JProfiler GUI.
Returns:
the meta-data instance

description

public abstract ProbeMetaData description(java.lang.String description)
Sets the description of the probe. The description is displayed in the probes view and the custom probe configuration or the session settings. If this method is not called, a default description will be displayed.

Parameters:
description - the description
Returns:
this instance

payload

public abstract ProbeMetaData payload(boolean payload)
Configures if the probe collects payload information. The default value is false. If set to true, the hot spots view will be shown. The InterceptorContext.createPayloadInfo(String) and InterceptorContext.createPayloadInfo(String, Object) and published via InterceptorContext.addPayloadInfo(PayloadInfo) for standalone payloads or via create methods in the InterceptorContext that take a PayloadInfo argument.

This only makes sense for interceptor probes.

Parameters:
payload - the value
Returns:
this instance

events

public abstract ProbeMetaData events(boolean events)
Configures if probe retain single events. The default value is false. If set to true, the events view will be shown. If the event count exceeds 100000, events will be consolidated. Events are created with the create methods in ProbeContext and InterceptorContext and are published with ProbeContext.addEvent(ProbeEvent).

Parameters:
events - the value
Returns:
this instance

telemetry

public abstract ProbeMetaData telemetry(boolean telemetry)
Configures if the probe collects telemetry data. The default value is false. If set to true, the telemetries view will be shown. Telemetries must then be configured with calls to addCustomTelemetry(String, Unit, float) and addOpenControlObjectTelemetry(String). Telemetry data is sampled every second with calls to TelemetryProbe.fillTelemetryData(ProbeContext, int[]).

This only makes sense for telemetry probes.

Parameters:
telemetry - the value
Returns:
this instance

controlObjectView

public abstract ProbeMetaData controlObjectView(boolean controlObjectView)
Configures if the probe publishes control objects. The default value is false. If set to true, the control objects view will be shown. Control objects are created with calls to ProbeContext.createOpenEvent(String, Object) or InterceptorContext.createOpenEvent(PayloadInfo, Object).

Parameters:
controlObjectView - the value
Returns:
this instance

recordOnStartup

public abstract ProbeMetaData recordOnStartup(boolean startRecording)
Configures if the probe should record data on startup. The default value is true. In any case, the user can start and stop recording the JProfiler GUI.

Parameters:
startRecording - the value
Returns:
this instance

annotatePayloads

public abstract ProbeMetaData annotatePayloads(boolean annotatePayloads)
Configures if the probe should annotate data into the call tree view. The default value is false. If set to true, you should also call the payloadName(String) method, so you can distinguish payload from different probes in the call tree.

Parameters:
annotatePayloads - the value
Returns:
this instance

payloadName

public abstract ProbeMetaData payloadName(java.lang.String payloadName)
Sets the name of the payload. Then the probe annotates data in the the call tree, the container node for the payload of this probe shows this name.

This only has an effect if annotatePayloads(boolean) is called with the argument true.

Parameters:
payloadName - the name
Returns:
this instance

startTelemetryGroup

public abstract ProbeMetaData startTelemetryGroup(java.lang.String name)
Starts a group of telemetries that can be displayed in the same graph. The telemetries have to have the same units and their values should be in the sme order of magnitude. All subsequent calls to addCustomTelemetry(String, Unit, float) will be added to this group. To start a new group, you have to call this method again. If you never call this method, all telemetries will be in separate graphs.

This only makes sense if the telemetry(boolean) method has been called with the argument true.

Parameters:
name - the name of the telemetry group
Returns:
this instance

addOpenControlObjectTelemetry

public abstract ProbeMetaData addOpenControlObjectTelemetry(java.lang.String name)
Configures a telemetry that shows the number of open control objects. This only makes sense if your probe supports control objects and has called controlObjectView(boolean) with the argument true.

This only makes sense if the telemetry(boolean) method has been called with the argument true.

Parameters:
name - the name of the telemetry
Returns:
this instance

addCustomTelemetry

public abstract ProbeMetaData addCustomTelemetry(java.lang.String name,
                                                 Unit unit,
                                                 float factor)
Configures a custom telemetry. Telemetry values are sampled every second by calls to TelemetryProbe.fillTelemetryData(ProbeContext, int[]). The order of the invocations of this configuration method define the indices in the data array of the sampling method.

This only makes sense if the telemetry(boolean) method has been called with the argument true.

Parameters:
name - the name of the telemetry
unit - the unit of the measurement
factor - the number by which the measurements should be divided to get the numeric value for the vertical axis. If your measurements directly correspond to the selected unit, pass 1f.
Returns:
this instance

addAdditionalData

public abstract ProbeMetaData addAdditionalData(java.lang.String name,
                                                DataType dataType)
Configures an additional data column for probe events. Additional data is set by a call to ProbeEvent.additionalData(Object[]). The order of the invocations of this configuration method define the indices in the data array of the additionalData method.

This only makes sense if the events(boolean) method has been called with the argument true.

Parameters:
name - the name of the additional data column. This is displayed as the column header in the events view.
dataType - the data type of the additional data column
Returns:
this instance

addAdditionalControlObjectData

public abstract ProbeMetaData addAdditionalControlObjectData(java.lang.String name,
                                                             DataType dataType,
                                                             boolean nested)
Configures an additional data column for control objects. Additional data is set when control objects are opened with a call to ProbeContext.createOpenEvent(String, Object, Object[]) or ProbeContext.createOpenEvent(String, Object, Object[]). The order of the invocations of this configuration method define the indices in the data array of the createOpenEvent methods.

This only makes sense if the controlObjectView(boolean) method has been called with the argument true.

Parameters:
name - the name of the additional data column. This is displayed as the column header in the control objects view.
dataType - the data type of the additional data column
nested - If the column should be displayed in a nested table. This makes sense if the data is more for debugging purposes, contains very long text values or if you have a lot of additional data columns. For example, the built-in process probe shows several columns in a nested table.
Returns:
this instance

customTypeNames

public abstract ProbeMetaData customTypeNames(java.lang.String[] typeNames)
Configures the custom event types and their names. The index in the array becomes the ID of the custom event type and is used in calls to ProbeContext.createCustomEvent(String, int, Object) and InterceptorContext.startCustomState(Object, int). Custom events that are associated with control objects are also shown in the time line view in the way the horizontal bar of a control object is colored along the time axis. To configure the colors of custom events, call customColors(int[]).

Parameters:
typeNames - the names of the custom events. Not that the index in the array becomes the ID of the custom event.
Returns:
this instance

customColors

public abstract ProbeMetaData customColors(int[] customColors)
Configures the colors of the custom events in the time line view.

Parameters:
customColors - the colors as RGB values. The RGB value is the result of the getRGB() method on a java.awt.Color object. The array index of each color corresponds to the custom event index in the call to customTypeNames(String[]).
Returns:
this instance
See Also:
customTypeNames(String[])

openTypeName

public abstract ProbeMetaData openTypeName(java.lang.String name)
Sets the name of the automatic event type for the opening of a control object. This name is displayed in the event type selector of control object and events view as well as in the event type column of the events view. For example, the file probe sets this value to "File opened".

This only makes sense if the controlObjectView(boolean) method has been called with the argument true.

Parameters:
name - the name of the event type
Returns:
this instance
See Also:
closeTypeName(String)

closeTypeName

public abstract ProbeMetaData closeTypeName(java.lang.String name)
Sets the name of the automatic event type for the closing of a control object. This name is displayed in the event type selector of control object and events view as well as in the event type column of the events view. For example, the file probe sets this value to "File closed".

This only makes sense if the controlObjectView(boolean) method has been called with the argument true.

Parameters:
name - the name of the event type
Returns:
this instance
See Also:
(String)