此内容没有您所选择的语言版本。
12.5. Repository Monitor
The
org.modeshape.jcr.api.monitor.RepositoryMonitor
interface can then be used to get the available metrics and windows, as well as obtaining the history for a given metric and window:
public interface RepositoryMonitor { /** * Get the ValueMetric enumerations that are available for use by the caller * with {{getHistory(ValueMetric, Window)}}. * * @return the immutable set of ValueMetric instances; never null but possibly * empty if the caller has no permissions to see any value metrics */ Set<ValueMetric> getAvailableValueMetrics(); /** * Get the DurationMetric enumerations that are available for use by the caller * with {{getHistory(DurationMetric, Window)}}. * * @return the immutable set of DurationMetric instances; never null but possibly * empty if the caller has no permissions to see any value metrics */ Set<DurationMetric> getAvailableDurationMetrics(); /** * Get the Window enumerations that are available for use by the caller with * {{getHistory(DurationMetric, Window)}} and {{getHistory(ValueMetric, Window)}}. * * @return the immutable set of DurationMetric instances; never null but possibly * empty if the caller has no permissions to see any value metrics */ Set<Window> getAvailableWindows(); /** * Get the statics for the specified value metric during the given window in time. * The oldest statistics will be first, while the newest statistics will be last. * * @param metric the value metric; may not be null * @param windowInTime the window specifying which statistics are to be returned; * may not be null * @return the history of the metrics; never null but possibly empty if there are * no statistics being captures for this repository * @throws AccessDeniedException if the session does not have privileges to monitor the repository * @throws RepositoryException if there is an error obtaining the history */ public History getHistory( ValueMetric metric, Window windowInTime ) throws AccessDeniedException, RepositoryException; /** * Get the statics for the specified duration metric during the given window in time. * The oldest statistics will be first, while the newest statistics will be last. * * @param metric the duration metric; may not be null * @param windowInTime the window specifying which statistics are to be returned; * may not be null * @return the history of the metrics; never null but possibly empty if there are * no statistics being captures for this repository * @throws AccessDeniedException if the session does not have privileges to monitor the repository * @throws RepositoryException if there is an error obtaining the history */ public History getHistory( DurationMetric metric, Window windowInTime ) throws AccessDeniedException, RepositoryException; /** * Get the longest-running activities recorded for the specified metric. * The results contain the duration records in order of increasing duration, * with the activity with the longest duration appearing last in the array. * * @param metric the duration metric; may not be null * @return the activities with the longest durations; never null but possibly * empty if no such activities were performed * @throws AccessDeniedException if the session does not have privileges to monitor the repository * @throws RepositoryException if there is an error obtaining the history */ public DurationActivity[] getLongestRunning( DurationMetric metric ) throws AccessDeniedException, RepositoryException;
public interface RepositoryMonitor {
/**
* Get the ValueMetric enumerations that are available for use by the caller
* with {{getHistory(ValueMetric, Window)}}.
*
* @return the immutable set of ValueMetric instances; never null but possibly
* empty if the caller has no permissions to see any value metrics
*/
Set<ValueMetric> getAvailableValueMetrics();
/**
* Get the DurationMetric enumerations that are available for use by the caller
* with {{getHistory(DurationMetric, Window)}}.
*
* @return the immutable set of DurationMetric instances; never null but possibly
* empty if the caller has no permissions to see any value metrics
*/
Set<DurationMetric> getAvailableDurationMetrics();
/**
* Get the Window enumerations that are available for use by the caller with
* {{getHistory(DurationMetric, Window)}} and {{getHistory(ValueMetric, Window)}}.
*
* @return the immutable set of DurationMetric instances; never null but possibly
* empty if the caller has no permissions to see any value metrics
*/
Set<Window> getAvailableWindows();
/**
* Get the statics for the specified value metric during the given window in time.
* The oldest statistics will be first, while the newest statistics will be last.
*
* @param metric the value metric; may not be null
* @param windowInTime the window specifying which statistics are to be returned;
* may not be null
* @return the history of the metrics; never null but possibly empty if there are
* no statistics being captures for this repository
* @throws AccessDeniedException if the session does not have privileges to monitor the repository
* @throws RepositoryException if there is an error obtaining the history
*/
public History getHistory( ValueMetric metric,
Window windowInTime )
throws AccessDeniedException, RepositoryException;
/**
* Get the statics for the specified duration metric during the given window in time.
* The oldest statistics will be first, while the newest statistics will be last.
*
* @param metric the duration metric; may not be null
* @param windowInTime the window specifying which statistics are to be returned;
* may not be null
* @return the history of the metrics; never null but possibly empty if there are
* no statistics being captures for this repository
* @throws AccessDeniedException if the session does not have privileges to monitor the repository
* @throws RepositoryException if there is an error obtaining the history
*/
public History getHistory( DurationMetric metric,
Window windowInTime )
throws AccessDeniedException, RepositoryException;
/**
* Get the longest-running activities recorded for the specified metric.
* The results contain the duration records in order of increasing duration,
* with the activity with the longest duration appearing last in the array.
*
* @param metric the duration metric; may not be null
* @return the activities with the longest durations; never null but possibly
* empty if no such activities were performed
* @throws AccessDeniedException if the session does not have privileges to monitor the repository
* @throws RepositoryException if there is an error obtaining the history
*/
public DurationActivity[] getLongestRunning( DurationMetric metric )
throws AccessDeniedException, RepositoryException;
And finally, your application can get the
RepositoryMonitor
instance from the Session's workspace, using the org.modeshape.jcr.api.Workspace
interface that extends the standard javax.jcr.Workspace
interface:
Session session = ... org.modeshape.jcr.api.Workspace workspace = (org.modeshape.jcr.api.Workspace)session.getWorkspace(); RepositoryMonitor monitor = workspace.getRepositoryManager().getRepositoryMonitor();
Session session = ...
org.modeshape.jcr.api.Workspace workspace = (org.modeshape.jcr.api.Workspace)session.getWorkspace();
RepositoryMonitor monitor = workspace.getRepositoryManager().getRepositoryMonitor();