## cascading.stats
Class CascadingStats

    java.lang.Object
      cascading.stats.CascadingStats

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  CascadeStats, FlowStats, FlowStepStats

    public abstract class CascadingStats

extends Object
implements Serializable

Class CascadingStats is the base class for all Cascading statistics gathering. It also reports the status of core elements that have state.

There are eight states the stats object reports; PENDING, SKIPPED, STARTED, SUBMITTED, RUNNING, SUCCESSFUL, STOPPED, and FAILED.

- `pending` - when the Flow or Cascade has yet to start.
- `skipped` - when the Flow was skipped by the parent Cascade.
- `started` - when `Flow.start()` was called.
- `submitted` - when the Step was submitted to the underlying platform for work.
- `running` - when the Flow or Cascade is executing a workload.
- `stopped` - when the user calls `Flow.stop()` on the Flow or Cascade.
- `failed` - when the Flow or Cascade threw an error and failed to finish the workload.
- `successful` - when the Flow or Cascade naturally completed its workload without failure.

CascadingStats also reports four unique timestamps.

- `startTime` - when the `start()` method was called.
- `submitTime` - when the unit of work was actually submitted for execution. Not supported by all sub-classes.
- `runTime` - when the unit of work actually began to execute work. This value may be affected by any "polling interval" in place.
- `finishedTime` - when all work has completed successfully, failed, or stopped.

A unit of work is considered `finished` when the Flow or Cascade is no longer processing a workload and `successful`, `failed`, or `stopped` is true.

See Also:
  `CascadeStats`, `FlowStats`, `FlowStepStats`, Serialized Form

Nested Class Summary
`static class` `CascadingStats.Status`

Field Summary
`protected ClientState` `clientState`
`static String` `STATS_STORE_INTERVAL`

Constructor Summary
`protected` `CascadingStats(String name, ClientState clientState)`

Method Summary
`abstract void` `captureDetail()` Method captureDetail will recursively capture details about nested systems.
`void` `cleanup()` Method cleanup destroys any resources allocated by this instance.
`abstract Collection` `getChildren()` Method getChildren returns any relevant child statistics instances.
`abstract Collection<String>` `getCounterGroups()` Method getCounterGroups returns all the available counter group names.
`abstract Collection<String>` `getCounterGroupsMatching(String regex)` Method getCounterGroupsMatching returns all the available counter group names that match the given regular expression.
`Collection<String>` `getCountersFor(Class<? extends Enum> group)` Method getCountersFor returns all the counter names for the counter Enum.
`abstract Collection<String>` `getCountersFor(String group)` Method getCountersFor returns all the counter names for the give group name.
`abstract long` `getCounterValue(Enum counter)` Method getCounter returns the current value for the given counter Enum.
`abstract long` `getCounterValue(String group, String counter)` Method getCounter returns the current value for the given group and counter.
`long` `getCurrentDuration()` Method getCurrentDuration returns the current duration of the current work whether or not the work is finished.
`long` `getDuration()` Method getDuration returns the duration the work executed before being finished.
`long` `getFinishedTime()` Method getFinishedTime returns the finishedTime of this CascadingStats object.
`abstract String` `getID()` Method getID returns the ID of this CascadingStats object.
`String` `getName()` Method getName returns the name of this CascadingStats object.
`long` `getPendingTime()` Method getPendingTime returns the pendingTime of this CascadingStats object.
`long` `getRunTime()` Method getRunTime returns the runTime of this CascadingStats object.
`long` `getStartTime()` Method getStartTime returns the startTime of this CascadingStats object.
`protected String` `getStatsString()`
`CascadingStats.Status` `getStatus()` Method getStatus returns the `CascadingStats.Status` of this CascadingStats object.
`long` `getSubmitTime()` Method getSubmitTime returns the submitTime of this CascadingStats object.
`Throwable` `getThrowable()` Method getThrowable returns the throwable of this CascadingStats object.
`boolean` `isEngaged()` Method isEngaged returns true when there is work being executed, if `isStarted()`, `isSubmitted()`, or `isRunning()` returns true;
`boolean` `isFailed()` Method isFailed returns true when the work ended with an error.
`boolean` `isFinished()` Method isFinished returns true if the current status shows no work currently being executed, if `isSkipped()`, `isSuccessful()`, `isFailed()`, or `isStopped()` returns true.
`boolean` `isPending()` Method isPending returns true if no work has been submitted.
`boolean` `isRunning()` Method isRunning returns true when work has begun.
`boolean` `isSkipped()` Method isSkipped returns true when the works was skipped.
`boolean` `isStarted()` Method isStarted returns true when work has started.
`boolean` `isStopped()` Method isStopped returns true when the user stopped the work.
`boolean` `isSubmitted()` Method isSubmitted returns true if no work has started.
`boolean` `isSuccessful()` Method isSuccessful returns true when work has completed successfully.
`void` `markFailed(Throwable throwable)` Method markFailed sets the status to `CascadingStats.Status.FAILED`.
`void` `markPending()` Method markPending sets the status to `CascadingStats.Status.PENDING`.
`protected void` `markPendingTime()`
`void` `markRunning()` Method markRunning sets the status to `CascadingStats.Status.RUNNING`.
`protected void` `markRunTime()`
`void` `markSkipped()` Method markSkipped sets the status to `CascadingStats.Status.SKIPPED`.
`void` `markStarted()` Method markStarted sets the status to `CascadingStats.Status.STARTED`.
`void` `markStartedThenRunning()` Method markStartedThenRunning consecutively marks the status as `CascadingStats.Status.STARTED` then `CascadingStats.Status.RUNNING` and forces the start and running time to be equals.
`protected void` `markStartTime()`
`protected void` `markStartToRunTime()`
`void` `markStopped()` Method markStopped sets the status to `CascadingStats.Status.STOPPED`.
`void` `markSubmitted()` Method markSubmitted sets the status to `CascadingStats.Status.SUBMITTED`.
`protected void` `markSubmitTime()`
`void` `markSuccessful()` Method markSuccessful sets the status to `CascadingStats.Status.SUCCESSFUL`.
`void` `prepare()` Method prepare initializes this instance.
`abstract void` `recordInfo()`
`void` `recordStats()` Method recordStats forces recording of current status information.
`static void` `setStatsStoreInterval(Map<Object,Object> properties, long intervalMs)` Method setStatsStoreInterval sets the interval time between store operations against the underlying document storage services.
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### STATS_STORE_INTERVAL

    public static final String STATS_STORE_INTERVAL

See Also:
  Constant Field Values

### clientState

    protected final ClientState clientState

Constructor Detail

### CascadingStats

    protected CascadingStats(String name,
                             ClientState clientState)

Method Detail

### setStatsStoreInterval

    public static void setStatsStoreInterval(Map<Object,Object> properties,
                                             long intervalMs)

  Method setStatsStoreInterval sets the interval time between store operations against the underlying document storage services. This affects the rate at which metrics and status information is updated.

  Parameters:
    `properties` - of type Properties
    `intervalMs` - milliseconds between storage calls

### prepare

    public void prepare()

  Method prepare initializes this instance.

### cleanup

    public void cleanup()

  Method cleanup destroys any resources allocated by this instance.

### getID

    public abstract String getID()

  Method getID returns the ID of this CascadingStats object.

  Returns:
    the ID (type Object) of this CascadingStats object.

### getName

    public String getName()

  Method getName returns the name of this CascadingStats object.

  Returns:
    the name (type String) of this CascadingStats object.

### getThrowable

    public Throwable getThrowable()

  Method getThrowable returns the throwable of this CascadingStats object.

  Returns:
    the throwable (type Throwable) of this CascadingStats object.

### isPending

    public boolean isPending()

  Method isPending returns true if no work has been submitted.

  Returns:
    the pending (type boolean) of this CascadingStats object.

### isSkipped

    public boolean isSkipped()

  Method isSkipped returns true when the works was skipped.

  Flows are skipped if the appropriate `FlowSkipStrategy.skipFlow(Flow)` returns `true`;

  Returns:
    the skipped (type boolean) of this CascadingStats object.

### isStarted

    public boolean isStarted()

  Method isStarted returns true when work has started.

  Returns:
    the started (type boolean) of this CascadingStats object.

### isSubmitted

    public boolean isSubmitted()

  Method isSubmitted returns true if no work has started.

  Returns:
    the submitted (type boolean) of this CascadingStats object.

### isRunning

    public boolean isRunning()

  Method isRunning returns true when work has begun.

  Returns:
    the running (type boolean) of this CascadingStats object.

### isEngaged

    public boolean isEngaged()

  Method isEngaged returns true when there is work being executed, if `isStarted()`, `isSubmitted()`, or `isRunning()` returns true;

  Returns:
    the engaged (type boolean) of this CascadingStats object.

### isSuccessful

    public boolean isSuccessful()

  Method isSuccessful returns true when work has completed successfully.

  Returns:
    the completed (type boolean) of this CascadingStats object.

### isFailed

    public boolean isFailed()

  Method isFailed returns true when the work ended with an error.

  Returns:
    the failed (type boolean) of this CascadingStats object.

### isStopped

    public boolean isStopped()

  Method isStopped returns true when the user stopped the work.

  Returns:
    the stopped (type boolean) of this CascadingStats object.

### isFinished

    public boolean isFinished()

  Method isFinished returns true if the current status shows no work currently being executed, if `isSkipped()`, `isSuccessful()`, `isFailed()`, or `isStopped()` returns true.

  Returns:
    the finished (type boolean) of this CascadingStats object.

### getStatus

    public CascadingStats.Status getStatus()

  Method getStatus returns the `CascadingStats.Status` of this CascadingStats object.

  Returns:
    the status (type Status) of this CascadingStats object.

### recordStats

    public void recordStats()

  Method recordStats forces recording of current status information.

### recordInfo

    public abstract void recordInfo()

### markPending

    public void markPending()

  Method markPending sets the status to `CascadingStats.Status.PENDING`.

### markPendingTime

    protected void markPendingTime()

### markStartedThenRunning

    public void markStartedThenRunning()

  Method markStartedThenRunning consecutively marks the status as `CascadingStats.Status.STARTED` then `CascadingStats.Status.RUNNING` and forces the start and running time to be equals.

### markStartToRunTime

    protected void markStartToRunTime()

### markStarted

    public void markStarted()

  Method markStarted sets the status to `CascadingStats.Status.STARTED`.

### markStartTime

    protected void markStartTime()

### markSubmitted

    public void markSubmitted()

  Method markSubmitted sets the status to `CascadingStats.Status.SUBMITTED`.

### markSubmitTime

    protected void markSubmitTime()

### markRunning

    public void markRunning()

  Method markRunning sets the status to `CascadingStats.Status.RUNNING`.

### markRunTime

    protected void markRunTime()

### markSuccessful

    public void markSuccessful()

  Method markSuccessful sets the status to `CascadingStats.Status.SUCCESSFUL`.

### markFailed

    public void markFailed(Throwable throwable)

  Method markFailed sets the status to `CascadingStats.Status.FAILED`.

  Parameters:
    `throwable` - of type Throwable

### markStopped

    public void markStopped()

  Method markStopped sets the status to `CascadingStats.Status.STOPPED`.

### markSkipped

    public void markSkipped()

  Method markSkipped sets the status to `CascadingStats.Status.SKIPPED`.

### getPendingTime

    public long getPendingTime()

  Method getPendingTime returns the pendingTime of this CascadingStats object.

  Returns:
    the pendingTime (type long) of this CascadingStats object.

### getStartTime

    public long getStartTime()

  Method getStartTime returns the startTime of this CascadingStats object.

  Returns:
    the startTime (type long) of this CascadingStats object.

### getSubmitTime

    public long getSubmitTime()

  Method getSubmitTime returns the submitTime of this CascadingStats object.

  Returns:
    the submitTime (type long) of this CascadingStats object.

### getRunTime

    public long getRunTime()

  Method getRunTime returns the runTime of this CascadingStats object.

  Returns:
    the runTime (type long) of this CascadingStats object.

### getFinishedTime

    public long getFinishedTime()

  Method getFinishedTime returns the finishedTime of this CascadingStats object.

  Returns:
    the finishedTime (type long) of this CascadingStats object.

### getDuration

    public long getDuration()

  Method getDuration returns the duration the work executed before being finished.

  This method will return zero until the work is finished. See `getCurrentDuration()` if you wish to poll for the current duration value.

  Duration is calculated as `finishedTime - startTime`.

  Returns:
    the duration (type long) of this CascadingStats object.

### getCurrentDuration

    public long getCurrentDuration()

  Method getCurrentDuration returns the current duration of the current work whether or not the work is finished. When finished, the return value will be the same as `getDuration()`.

  Duration is calculated as `finishedTime - startTime`.

  Returns:
    the currentDuration (type long) of this CascadingStats object.

### getCounterGroups

    public abstract Collection<String> getCounterGroups()

  Method getCounterGroups returns all the available counter group names.

  Returns:
    the counterGroups (type Collection<String>) of this CascadingStats object.

### getCounterGroupsMatching

    public abstract Collection<String> getCounterGroupsMatching(String regex)

  Method getCounterGroupsMatching returns all the available counter group names that match the given regular expression.

  Parameters:
    `regex` - of type String
  Returns:
    Collection<String>

### getCountersFor

    public abstract Collection<String> getCountersFor(String group)

  Method getCountersFor returns all the counter names for the give group name.

  Parameters:
    `group` -
  Returns:
    Collection<String>

### getCountersFor

    public Collection<String> getCountersFor(Class<? extends Enum> group)

  Method getCountersFor returns all the counter names for the counter Enum.

  Parameters:
    `group` -
  Returns:
    Collection<String>

### getCounterValue

    public abstract long getCounterValue(Enum counter)

  Method getCounter returns the current value for the given counter Enum.

  Parameters:
    `counter` - of type Enum
  Returns:
    the current counter value

### getCounterValue

    public abstract long getCounterValue(String group,
                                         String counter)

  Method getCounter returns the current value for the given group and counter.

  Parameters:
    `group` - of type String
    `counter` - of type String
  Returns:
    the current counter value

### captureDetail

    public abstract void captureDetail()

  Method captureDetail will recursively capture details about nested systems. Use this method to persist statistics about a given Cascade, Flow, or FlowStep.

  Each CascadingStats object must be individually inspected for any system specific details.

### getChildren

    public abstract Collection getChildren()

  Method getChildren returns any relevant child statistics instances. They may not be of type CascadingStats, but instead platform specific.

  Returns:
    a Collection of child statistics

### getStatsString

    protected String getStatsString()

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2007-2014 Concurrent, Inc. All Rights Reserved.