P JSON Output
P JSON Output
Basic Structure
Each P error trace JSON output is in the following format.
[
{ ...log entry },
{ ...log entry },
...
]
Log Entry
Each item in the array of JSON output is a object containing information about a specific log entry. Each log object contains type and details.
{
type: String, // Always
details: { // Always
log: String, // Always
id: String,
error: String,
event: String,
creatorName: String,
creatorType: String,
state: String,
startState: String,
endState: String,
payload: Object,
action: String,
exception: String,
haltInboxSize: Number,
wasBlocked: Boolean,
sender: String,
target: String,
opGroupId: String,
isTargetHalted: Boolean,
isEntry: Boolean,
isInHotState: Boolean,
eventType: String,
eventTypes: String[],
monitor: String,
strategy: String,
strategyDescription: String,
clock: Object,
}
}
Log Types and Fields
Fields in details of a log object differ based on the type of log it is.
| Log Type | Fields |
|---|---|
| AssertionFailure | log, error |
| CreateActor | log, id, creatorName, creatorType, clock |
| CreateStateMachine | log, id, creatorName, creatorType, clock |
| DefaultEventHandler | log, id, state, clock |
| DequeueEvent | log, id, event, state, payload, clock |
| ExceptionHandled | log, id, state, action, exception, clock |
| ExceptionThrown | log, id, state, action, exception, clock |
| GoToState | log, id, startState, endState, clock |
| Halt | log, id, haltInboxSize, clock |
| PopState | log, id, startState, endState, clock |
| PopStateUnhandledEvent | log, id, state, event, clock |
| PushState | log, id, startState, endState, clock |
| RaiseEvent | log, id, state, event, payload, clock |
| ReceiveEvent | log, id, state, event, wasBlocked, payload, clock |
| SendEvent | log, sender, state, event, target, opGroupId, isTargetHalted, payload, clock |
| StateTransition | log, id, state, isEntry, clock |
| WaitEvent | log, id, state, eventType, clock |
| WaitMultipleEvents | log, id, state, eventTypes, clock |
| CreateMonitor | log, monitor, clock |
| MonitorProcessEvent | log, monitor, state, event, payload, clock |
| MonitorRaiseEvent | log, monitor, state, event, payload, clock |
| MonitorStateTransition | log, monitor, isEntry, isInHotState, clock |
| StrategyDescription | log, strategy, strategyDescription |
Check out this example P JSON output based on the Two Phase Commit Tutorial from the P documentation!