public abstract class CascadingStats<Child> extends java.lang.Object implements ProvidesCounters, java.io.Serializable
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.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.finished
when the Flow or Cascade is no longer processing a workload and successful
,
skipped
, failed
, or stopped
is true.
It is important to note all the timestamps are client side observations. Not values reported by the underlying
platform. That said, the transitions are seen by polling the client interface to the underlying platform so are
effected by the FlowProps.getJobPollingInterval()
value.CascadeStats
,
FlowStats
,
FlowStepStats
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
CascadingStats.Status |
static class |
CascadingStats.Type |
Modifier and Type | Field and Description |
---|---|
protected ClientState |
clientState |
protected long |
finishedTime
Field finishedTime
|
protected java.util.concurrent.atomic.AtomicLong |
lastCaptureDetail |
protected java.util.Set<StatsListener> |
listeners |
protected java.lang.String |
name
Field name
|
protected long |
pendingTime
Field pendingTime
|
protected long |
runTime
Field runTime
|
protected long |
startTime
Field startTime
|
static java.lang.String |
STATS_COMPLETE_CHILD_DETAILS_BLOCK_DURATION |
static java.lang.String |
STATS_STORE_INTERVAL |
protected CascadingStats.Status |
status
Field status
|
protected long |
submitTime
Field submitTime
|
protected java.lang.Throwable |
throwable
Field throwable
|
protected java.lang.String[] |
throwableTrace
Field throwableTrace
|
Modifier | Constructor and Description |
---|---|
protected |
CascadingStats(java.lang.String name,
ClientState clientState) |
Modifier and Type | Method and Description |
---|---|
void |
addListener(StatsListener statsListener) |
void |
captureDetail()
Method captureDetail will recursively capture details about nested systems.
|
abstract void |
captureDetail(CascadingStats.Type depth) |
void |
cleanup()
Method cleanup destroys any resources allocated by this instance.
|
protected void |
fireListeners(CascadingStats.Status fromStatus,
CascadingStats.Status toStatus) |
abstract java.util.Collection<Child> |
getChildren()
Method getChildren returns any relevant child statistics instances.
|
abstract Child |
getChildWith(java.lang.String id)
Method getChildWith returns a child stats instance with the given ID value.
|
abstract java.util.Collection<java.lang.String> |
getCounterGroupsMatching(java.lang.String regex)
Method getCounterGroupsMatching returns all the available counter group names that match
the given regular expression.
|
java.util.Collection<java.lang.String> |
getCountersFor(java.lang.Class<? extends java.lang.Enum> group)
Method getCountersFor returns all the counter names for the counter Enum.
|
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 java.lang.String |
getID()
Method getID returns the ID of this CascadingStats object.
|
java.lang.String |
getName()
Method getName returns the name of this CascadingStats object.
|
long |
getPendingTime()
Method getPendingTime returns the pendingTime of this CascadingStats object.
|
protected java.lang.String |
getPrefix() |
protected abstract ProcessLogger |
getProcessLogger() |
long |
getRunTime()
Method getRunTime returns the runTime of this CascadingStats object.
|
long |
getStartTime()
Method getStartTime returns the startTime of this CascadingStats object.
|
protected java.lang.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.
|
java.lang.Throwable |
getThrowable()
Method getThrowable returns the throwable of this CascadingStats object.
|
java.lang.String[] |
getThrowableTrace()
Method getThrowableTrace returns the throwableTrace of this CascadingStats object.
|
abstract CascadingStats.Type |
getType() |
protected boolean |
isDetailStale()
For rate limiting access to the backend.
|
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.
|
protected void |
logDebug(java.lang.String message,
java.lang.Object... arguments) |
protected void |
logError(java.lang.String message,
java.lang.Object... arguments) |
protected void |
logError(java.lang.String message,
java.lang.Throwable throwable) |
protected void |
logInfo(java.lang.String message,
java.lang.Object... arguments) |
protected void |
logWarn(java.lang.String message,
java.lang.Object... arguments) |
protected void |
markDetailCaptured() |
void |
markFailed()
Method markFailed sets the status to
CascadingStats.Status.FAILED . |
void |
markFailed(java.lang.String[] throwableTrace)
Method markFailed sets the status to
CascadingStats.Status.FAILED . |
void |
markFailed(java.lang.Throwable throwable)
Method markFailed sets the status to
CascadingStats.Status.FAILED . |
protected void |
markFailed(java.lang.Throwable throwable,
java.lang.String[] throwableTrace) |
protected void |
markFinishedTime() |
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.
|
boolean |
removeListener(StatsListener statsListener) |
static void |
setStatsStoreInterval(java.util.Map<java.lang.Object,java.lang.Object> properties,
long intervalMs)
Method setStatsStoreInterval sets the interval time between store operations against the underlying
document storage services.
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getCounterGroups, getCountersFor, getCounterValue, getCounterValue, getLastSuccessfulCounterFetchTime
public static final java.lang.String STATS_STORE_INTERVAL
public static final java.lang.String STATS_COMPLETE_CHILD_DETAILS_BLOCK_DURATION
protected final java.lang.String name
protected final ClientState clientState
protected CascadingStats.Status status
protected java.util.Set<StatsListener> listeners
protected long pendingTime
protected long startTime
protected long submitTime
protected long runTime
protected long finishedTime
protected java.lang.Throwable throwable
protected java.lang.String[] throwableTrace
protected java.util.concurrent.atomic.AtomicLong lastCaptureDetail
protected CascadingStats(java.lang.String name, ClientState clientState)
public static void setStatsStoreInterval(java.util.Map<java.lang.Object,java.lang.Object> properties, long intervalMs)
properties
- of type PropertiesintervalMs
- milliseconds between storage callspublic void prepare()
public void cleanup()
public abstract java.lang.String getID()
public java.lang.String getName()
public abstract CascadingStats.Type getType()
public java.lang.Throwable getThrowable()
public java.lang.String[] getThrowableTrace()
public boolean isPending()
public boolean isSkipped()
FlowSkipStrategy.skipFlow(Flow)
returns true
;public boolean isStarted()
public boolean isSubmitted()
public boolean isRunning()
public boolean isEngaged()
isStarted()
, isSubmitted()
, or isRunning()
returns true;public boolean isSuccessful()
public boolean isFailed()
public boolean isStopped()
public boolean isFinished()
isSkipped()
, isSuccessful()
, isFailed()
, or isStopped()
returns true.public CascadingStats.Status getStatus()
CascadingStats.Status
of this CascadingStats object.public void recordStats()
public abstract void recordInfo()
public void markPending()
CascadingStats.Status.PENDING
.protected void markPendingTime()
public void markStartedThenRunning()
CascadingStats.Status.STARTED
then CascadingStats.Status.RUNNING
and forces the start and running time to be equals.protected void markStartToRunTime()
public void markStarted()
CascadingStats.Status.STARTED
.protected void markStartTime()
public void markSubmitted()
CascadingStats.Status.SUBMITTED
.protected void markSubmitTime()
public void markRunning()
CascadingStats.Status.RUNNING
.protected void markRunTime()
public void markSuccessful()
CascadingStats.Status.SUCCESSFUL
.protected void markFinishedTime()
public void markFailed()
CascadingStats.Status.FAILED
.public void markFailed(java.lang.Throwable throwable)
CascadingStats.Status.FAILED
.throwable
- of type Throwablepublic void markFailed(java.lang.String[] throwableTrace)
CascadingStats.Status.FAILED
.throwableTrace
- of type String[]protected void markFailed(java.lang.Throwable throwable, java.lang.String[] throwableTrace)
public void markStopped()
CascadingStats.Status.STOPPED
.public void markSkipped()
CascadingStats.Status.SKIPPED
.public long getPendingTime()
public long getStartTime()
public long getSubmitTime()
public long getRunTime()
public long getFinishedTime()
public long getDuration()
getCurrentDuration()
if you wish to poll for the current duration value.
Duration is calculated as finishedTime - startTime
.public long getCurrentDuration()
getDuration()
.
Duration is calculated as finishedTime - startTime
.public java.util.Collection<java.lang.String> getCountersFor(java.lang.Class<? extends java.lang.Enum> group)
ProvidesCounters
getCountersFor
in interface ProvidesCounters
public abstract java.util.Collection<java.lang.String> getCounterGroupsMatching(java.lang.String regex)
regex
- of type Stringpublic void captureDetail()
public abstract void captureDetail(CascadingStats.Type depth)
protected boolean isDetailStale()
protected void markDetailCaptured()
public abstract java.util.Collection<Child> getChildren()
public abstract Child getChildWith(java.lang.String id)
id
- the id of a child instancepublic void addListener(StatsListener statsListener)
public boolean removeListener(StatsListener statsListener)
protected void fireListeners(CascadingStats.Status fromStatus, CascadingStats.Status toStatus)
protected abstract ProcessLogger getProcessLogger()
protected java.lang.String getStatsString()
public java.lang.String toString()
toString
in class java.lang.Object
protected void logInfo(java.lang.String message, java.lang.Object... arguments)
protected void logDebug(java.lang.String message, java.lang.Object... arguments)
protected void logWarn(java.lang.String message, java.lang.Object... arguments)
protected void logError(java.lang.String message, java.lang.Object... arguments)
protected void logError(java.lang.String message, java.lang.Throwable throwable)
protected java.lang.String getPrefix()
Copyright © 2007-2015 Xplenty, Inc. All Rights Reserved.