Generated reference fault, field by field
The exact wire format for run files, live progress, completed results, journal records, and the values returned by the language bindings. This page is generated from the Rust model beside the JSON Schemas; do not edit it by hand.
Guide theme Run files Fault compatibility Progress Results Journal Adaptive phases Engine events
The smallest useful run
A run declares one or more proxies and an ordered list of phases. A phase without duration remains active until stopped and must be last.
schema_version: 1
name: slow database
proxies:
- name: database
protocol: tcp
listen: 127.0.0.1:15432
upstream: database.internal:5432
phases:
- name: degraded
proxies:
- proxy: database
faults:
- type: latency
flow: both
distribution: { type: normal, mean_ms: 200, stddev_ms: 20 }
Fault and transport compatibility
Fault TCP UDP Meaning
latencyyes yes Delay selected traffic using a sampled distribution.
jitteryes yes Probabilistically delay selected traffic.
bandwidthyes no Limit bytes per second for each connection stream.
blackholeyes yes Leave TCP traffic pending or drop UDP datagrams.
connection-resetyes no Reset a TCP connection when selected traffic is first used.
dnsno yes Alter DNS queries carried by a UDP proxy.
Run Open the JSON Schema
Field Required Type and constraints Description nameyes string (min length 1) Human-readable name used in progress, results, and journals. phasesyes array of Phase (min items 1) Ordered phases. Each begins when the previous phase ends. proxiesyes array of Proxy (min items 1) Network entry points available throughout the run. schema_versionyes constant 1 Version of the serialized run format. The current value is `1`.
DelayDistribution Variant Fields Description normalmean_ms: number (min 0.0) , stddev_ms: number (> 0.0) paretoscale_ms: number (> 0.0) , shape: number (> 0.0) pareto-normalnormal_mean_ms: number (min 0.0) , normal_stddev_ms: number (> 0.0) , pareto_scale_ms: number (> 0.0) , pareto_shape: number (> 0.0) uniformmax_ms: number (min 0.0) , min_ms: number (min 0.0)
DnsCase DnsCase: delay | timeout | truncated | refused | serv-fail | nx-domain | empty-answer | random-a
FaultSpec Variant Fields Description latencydistribution: DelayDistribution, flow: TrafficFlowAdds one sampled delay to the selected direction. TCP applies it to the
first non-empty traffic after activation; UDP applies it once to each
selected datagram in an exchange. jitterflow: TrafficFlow, max_delay_ms: number (min 0.0) , min_delay_ms: number (min 0.0) , probability: number (min 0.0, max 1.0) Adds a probabilistic sampled delay. TCP evaluates it per data operation;
UDP evaluates it once for each selected datagram in an exchange. bandwidthbytes_per_second: integer (min 1) , flow: TrafficFlowLimits transferred bytes per second independently for each connection
stream in the selected flow. blackholeflow: TrafficFlowLeaves TCP operations pending until cancellation, or drops UDP
datagrams in the selected direction. connection-resetflow: TrafficFlow, probability: number (min 0.0, max 1.0) Resets a selected connection when traffic first uses the chosen flow. dnscase: DnsCase, delay_ms: integer or null (min 0) Alters DNS queries carried by a UDP proxy.
HumanDuration HumanDuration: string (min length 1)
Phase Field Required Type and constraints Description durationno HumanDuration or nullOmit to keep this phase active until explicitly stopped. nameyes string (min length 1) Human-readable phase name exposed in progress events. proxiesyes array of ProxyFaults Fault chains applied to named proxies during this phase.
Proxy Field Required Type and constraints Description listenyes string Local socket address clients connect or send datagrams to. nameyes string (min length 1) Stable name used by phases to select this proxy. protocolyes TransportProtocolTransport accepted and forwarded by this proxy. upstreamyes string Remote socket address to which traffic is forwarded.
ProxyFaults Field Required Type and constraints Description faultsyes array of FaultSpec Ordered chain of faults applied to traffic on this proxy. proxyyes string (min length 1) Name of a proxy declared by the containing run.
TrafficFlow Variant Fields Description to-upstreamTraffic sent by the client toward the upstream service. to-clientTraffic returned by the upstream service toward the client. bothTraffic in both directions.
TransportProtocol Variant Fields Description tcpA connection-oriented byte stream. udpConnectionless datagrams, including DNS traffic.
RunProgress A lightweight phase transition published while a run executes.
Open the JSON Schema
Field Required Type and constraints Description phase_countyes integer (min 1) phase_duration_msno integer or null (min 0) Planned duration, or absent for an indefinite final phase. phase_indexyes integer (min 1) One-based position of the active phase. phase_nameyes string Name of the phase that has just started. phase_started_atyes string UTC instant at which the phase became active. proxiesyes array of ProxyFaults Fault chains active for this phase. run_nameyes string Name of the executing run.
RunResult Open the JSON Schema
Field Required Type and constraints Description completed_atyes string UTC instant at which execution ended. outcomeyes RunOutcomeWhether the run completed successfully or failed. run_nameyes string Name of the completed run. schema_versionyes constant 1 Version of the serialized result format. The current value is `1`. started_atyes string UTC instant at which execution began. transportyes TransportSummaryAggregate TCP and UDP observations collected during the run.
DelayRecord Field Required Type and constraints Description applicationsyes integer (min 0) total_delay_msyes number
FaultRecord Field Required Type and constraints Description bandwidth_bytes_limitedyes integer (min 0) blackhole_activationsyes integer (min 0) connection_resetsyes integer (min 0) dns_interventionsyes integer (min 0) jitteryes DelayRecordlatencyyes DelayRecord
FaultStatus Field Required Type and constraints Description average_jitter_msyes number average_latency_msyes number bandwidth_bytes_limitedno integer (min 0) Bytes paced by bandwidth faults, summed over every stream and
exchange. blackhole_activationsno integer (min 0) Traffic directions blackholed, summed over every stream and exchange.
Each direction of a stream or exchange counts at most once. connection_resetsno integer (min 0) Streams reset by a connection-reset fault. dns_interventionsno integer (min 0) DNS queries altered by a DNS fault. jitter_applicationsyes integer (min 0) latency_applicationsyes integer (min 0)
RunOutcome Variant Fields Description successfailedmessage: string
TcpStreamOutcome TcpStreamOutcome: active | completed | upstream-connect-failed | transfer-failed | cancelled | fault-reset
TcpStreamRecord Field Required Type and constraints Description bytes_to_clientyes integer (min 0) bytes_to_upstreamyes integer (min 0) closed_atno string or null failureno TransportFailure or nullfaultsyes FaultRecordopened_atyes string outcomeyes TcpStreamOutcomepeeryes string proxyyes string stream_idyes string upstreamyes string
TcpStreamStatus Field Required Type and constraints Description activeyes integer (min 0) active_impactedyes integer (min 0) average_bytes_to_clientyes integer (min 0) average_bytes_to_upstreamyes integer (min 0) completedyes integer (min 0) failedyes integer (min 0) impactedyes integer (min 0) openedyes integer (min 0)
TransportFailure Field Required Type and constraints Description categoryyes TransportFailureCategorymessageyes string stageyes TransportFailureStage
TransportFailureCategory TransportFailureCategory: dns-failed | connection-refused | timed-out | network-unreachable | connection-reset | broken-pipe | other
TransportFailureStage TransportFailureStage: connect | transfer | exchange
TransportStatus Field Required Type and constraints Description dropped_recordsyes integer (min 0) Completed records omitted from the best-effort event stream. effectsyes FaultStatuslast_failureno TransportFailure or nulltcpyes TcpStreamStatusudpyes UdpExchangeStatus
TransportSummary Field Required Type and constraints Description statusyes TransportStatustcp_streamsyes array of TcpStreamRecord udp_exchangesyes array of UdpExchangeRecord
UdpExchangeOutcome UdpExchangeOutcome: active | completed | transfer-failed | cancelled | fault-dropped
UdpExchangeRecord Field Required Type and constraints Description completed_atno string or null exchange_idyes string failureno TransportFailure or nullfaultsyes FaultRecordoutcomeyes UdpExchangeOutcomepeeryes string proxyyes string request_bytesyes integer (min 0) response_bytesyes integer (min 0) started_atyes string upstreamyes string
UdpExchangeStatus Field Required Type and constraints Description activeyes integer (min 0) active_impactedyes integer (min 0) average_request_bytesyes integer (min 0) average_response_bytesyes integer (min 0) completedyes integer (min 0) failedyes integer (min 0) impactedyes integer (min 0) startedyes integer (min 0)
JournalEvent Open the JSON Schema
Variant Fields Description run-startedfaults: array of ProxyFaults, name: string or null, proxies: array of Proxy, schema_version: constant 1, started_at: stringtcp-stream-completedstream: TcpStreamRecordudp-exchange-completedexchange: UdpExchangeRecordrun-completedcompleted_at: string, status: TransportStatus
BoundEndpoints Socket addresses actually bound by a started engine, in configuration
order.
Open the JSON Schema
Field Required Type and constraints Description tcpyes array of string Bound address of every TCP proxy. udpyes array of string Bound address of every UDP proxy.
ControlledPhase One phase of an adaptive schedule, as observed at a point in time.
Open the JSON Schema
Field Required Type and constraints Description durationno HumanDuration or nullOmitted when the phase runs until explicitly stopped. faultsyes array of ProxyFaults Fault chains applied to named proxies while the phase runs. idyes string Identifier assigned by the engine when the phase is added. nameyes string Human-readable phase name. planned_start_atno string or null Projected UTC start, known only when every earlier phase is timed. started_atno string or null UTC instant at which the phase started running. stateyes PhaseStateCurrent lifecycle state.
PhaseState Variant Fields Description pendingWaiting in the schedule; the only state in which a phase can change. runningApplying its faults to the engine. stoppedFinished, either explicitly or because its duration elapsed. deletedRemoved from the schedule before it started.
PhaseTransition An immutable record of one phase lifecycle change.
Open the JSON Schema
Field Required Type and constraints Description kindyes PhaseTransitionKindphaseyes ControlledPhaseThe phase immediately after the change. reasonno PhaseTransitionReason or nullSet for `started` and `stopped` transitions.
ControlledPhase Field Required Type and constraints Description durationno HumanDuration or nullOmitted when the phase runs until explicitly stopped. faultsyes array of ProxyFaults Fault chains applied to named proxies while the phase runs. idyes string Identifier assigned by the engine when the phase is added. nameyes string Human-readable phase name. planned_start_atno string or null Projected UTC start, known only when every earlier phase is timed. started_atno string or null UTC instant at which the phase started running. stateyes PhaseStateCurrent lifecycle state.
PhaseTransitionKind PhaseTransitionKind: added | modified | deleted | started | stopped
PhaseTransitionReason Variant Fields Description explicitRequested by the schedule owner. automaticStarted because the previous phase stopped. duration-elapsedStopped because its duration elapsed. supersededStopped because another phase was started explicitly.
EngineEvent One observation from a running engine: a completed transport record, or
a periodic status when no record completed within the status interval.
Open the JSON Schema
Variant Fields Description statusstatus: TransportStatusCurrent transport counters, emitted when the status interval elapses. tcp-streamstream: TcpStreamRecordA completed TCP stream. udp-exchangeexchange: UdpExchangeRecordA completed UDP request/response exchange.
TransportRecord Open the JSON Schema
Variant Fields Description tcp-streamstream: TcpStreamRecordudp-exchangeexchange: UdpExchangeRecord
TransportStatus Open the JSON Schema
Field Required Type and constraints Description dropped_recordsyes integer (min 0) Completed records omitted from the best-effort event stream. effectsyes FaultStatuslast_failureno TransportFailure or nulltcpyes TcpStreamStatusudpyes UdpExchangeStatus
TransportSummary Open the JSON Schema
Field Required Type and constraints Description statusyes TransportStatustcp_streamsyes array of TcpStreamRecord udp_exchangesyes array of UdpExchangeRecord
Regenerate with cargo run -p fault-model --example generate_schemas.