Class ProfilerPlugin
- java.lang.Object
-
- org.opends.server.api.plugin.DirectoryServerPlugin<ProfilerPluginCfg>
-
- org.opends.server.plugins.profiler.ProfilerPlugin
-
- All Implemented Interfaces:
ConfigurationChangeListener<ProfilerPluginCfg>
public final class ProfilerPlugin extends DirectoryServerPlugin<ProfilerPluginCfg> implements ConfigurationChangeListener<ProfilerPluginCfg>
This class defines a Directory Server startup plugin that will register itself as a configurable component that can allow for a simple sample-based profiling mechanism within the Directory Server. When profiling is enabled, the server will periodically (e.g., every few milliseconds) retrieve all the stack traces for all threads in the server and aggregates them so that they can be analyzed to see where the server is spending all of its processing time.
-
-
Field Summary
Fields Modifier and Type Field Description static StringPROFILE_ACTION_CANCELThe value to use for the profiler action when it should stop capturing data and discard any information that has been collected.static StringPROFILE_ACTION_NONEThe value to use for the profiler action when no action is necessary.static StringPROFILE_ACTION_STARTThe value to use for the profiler action when it should start capturing information.static StringPROFILE_ACTION_STOPThe value to use for the profiler action when it should stop capturing data and write the information it has collected to disk.
-
Constructor Summary
Constructors Constructor Description ProfilerPlugin()Creates a new instance of this Directory Server plugin.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConfigChangeResultapplyConfigurationChange(ProfilerPluginCfg configuration)Applies the configuration changes to this change listener.PluginResult.StartupdoStartup()Performs any processing that should be done when the Directory Server is in the process of starting.voidfinalizePlugin()Performs any necessary finalization for this plugin.voidinitializePlugin(Set<PluginType> pluginTypes, ProfilerPluginCfg configuration)Performs any initialization necessary for this plugin.booleanisConfigurationAcceptable(PluginCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)Indicates whether the provided configuration is acceptable for this plugin.booleanisConfigurationChangeAcceptable(ProfilerPluginCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)Indicates whether the proposed change to the configuration is acceptable to this change listener.-
Methods inherited from class org.opends.server.api.plugin.DirectoryServerPlugin
doLDIFExport, doLDIFImport, doLDIFImportBegin, doLDIFImportEnd, doPostConnect, doPostDisconnect, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostOperation, doPostResponse, doPostResponse, doPostResponse, doPostResponse, doPostResponse, doPostResponse, doPostResponse, doPostResponse, doPostSynchronization, doPostSynchronization, doPostSynchronization, doPostSynchronization, doPreOperation, doPreOperation, doPreOperation, doPreOperation, doPreOperation, doPreOperation, doPreOperation, doPreOperation, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doPreParse, doShutdown, getPluginEntryDN, getPluginTypes, getServerContext, initializeInternal, invokeForInternalOperations, processIntermediateResponse, processSearchEntry, processSearchReference, processSubordinateDelete, processSubordinateModifyDN, setInvokeForInternalOperations
-
-
-
-
Field Detail
-
PROFILE_ACTION_NONE
public static final String PROFILE_ACTION_NONE
The value to use for the profiler action when no action is necessary.- See Also:
- Constant Field Values
-
PROFILE_ACTION_START
public static final String PROFILE_ACTION_START
The value to use for the profiler action when it should start capturing information.- See Also:
- Constant Field Values
-
PROFILE_ACTION_STOP
public static final String PROFILE_ACTION_STOP
The value to use for the profiler action when it should stop capturing data and write the information it has collected to disk.- See Also:
- Constant Field Values
-
PROFILE_ACTION_CANCEL
public static final String PROFILE_ACTION_CANCEL
The value to use for the profiler action when it should stop capturing data and discard any information that has been collected.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ProfilerPlugin
public ProfilerPlugin()
Creates a new instance of this Directory Server plugin. Every plugin must implement a default constructor (it is the only one that will be used to create plugins defined in the configuration), and every plugin constructor must callsuper()as its first element.
-
-
Method Detail
-
initializePlugin
public final void initializePlugin(Set<PluginType> pluginTypes, ProfilerPluginCfg configuration) throws ConfigException
Performs any initialization necessary for this plugin. This will be called as soon as the plugin has been loaded and before it is registered with the server.- Specified by:
initializePluginin classDirectoryServerPlugin<ProfilerPluginCfg>- Parameters:
pluginTypes- The set of plugin types that indicate the ways in which this plugin will be invoked.configuration- The configuration for this plugin.- Throws:
ConfigException- If the provided entry does not contain a valid configuration for this plugin.
-
finalizePlugin
public final void finalizePlugin()
Performs any necessary finalization for this plugin. This will be called just after the plugin has been deregistered with the server but before it has been unloaded. It is also called whenDirectoryServerPlugin.initializePlugin(java.util.Set<org.opends.server.api.plugin.PluginType>, T)throws, on an instance that was never registered: it must then release whateverinitializePluginacquired before it failed, and must not assume that it completed.- Overrides:
finalizePluginin classDirectoryServerPlugin<ProfilerPluginCfg>
-
doStartup
public final PluginResult.Startup doStartup()
Performs any processing that should be done when the Directory Server is in the process of starting. This method will be called after virtually all other initialization has been performed but before the connection handlers are started.- Overrides:
doStartupin classDirectoryServerPlugin<ProfilerPluginCfg>- Returns:
- The result of the startup plugin processing.
-
isConfigurationAcceptable
public boolean isConfigurationAcceptable(PluginCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)
Indicates whether the provided configuration is acceptable for this plugin. It should be possible to call this method on an uninitialized plugin instance in order to determine whether the plugin would be able to use the provided configuration.- Overrides:
isConfigurationAcceptablein classDirectoryServerPlugin<ProfilerPluginCfg>- Parameters:
configuration- The plugin configuration for which to make the determination.unacceptableReasons- A list that may be used to hold the reasons that the provided configuration is not acceptable.- Returns:
trueif the provided configuration is acceptable for this plugin, orfalseif not.
-
isConfigurationChangeAcceptable
public boolean isConfigurationChangeAcceptable(ProfilerPluginCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)
Indicates whether the proposed change to the configuration is acceptable to this change listener.- Specified by:
isConfigurationChangeAcceptablein interfaceConfigurationChangeListener<ProfilerPluginCfg>- Parameters:
configuration- The new configuration containing the changes.unacceptableReasons- A list that can be used to hold messages about why the provided configuration is not acceptable.- Returns:
- Returns
trueif the proposed change is acceptable, orfalseif it is not.
-
applyConfigurationChange
public ConfigChangeResult applyConfigurationChange(ProfilerPluginCfg configuration)
Applies the configuration changes to this change listener.- Specified by:
applyConfigurationChangein interfaceConfigurationChangeListener<ProfilerPluginCfg>- Parameters:
configuration- The new configuration containing the changes.- Returns:
- Returns information about the result of changing the configuration.
-
-