Generated reference fault, field by field
The exact wire format for run files, live progress, completed results, and journal records. 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
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 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
Regenerate with cargo run -p fault-model --example generate_schemas.