Profiles
Realistic failure scenarios usually combine several effects, and tuning every parameter by hand for each scenario is repetitive. A profile bundles a common assault combination into a single config line.
quarkus.goblin.assault.profile=SLOW_FAILURE
Available profiles:
Profile |
Assaults enabled |
Sensible defaults |
|
none (manual mode): at startup |
|
|
latency + exception |
Latency |
|
HTTP status |
HTTP 500 with the message |
|
latency |
Fixed |
A profile other than NONE first turns every server-side assault off — latency, exception, HTTP status, dependency degradation, response body and response header — then enables its own assaults with the defaults above, messages included. The parameters of the assaults it does not enable (for instance the response body mode and percentage, or the header rules) are kept. Profiles never arm or disarm a layer, and never touch the client-side toggles. INTERMITTENT (HTTP status) only fires on the HTTP_IN layer, while the latency and exception of SLOW_FAILURE and TIMEOUT fire on whichever layer the request resolves to (HTTP_IN, SERVICE, DATABASE, MESSAGING).
| Profiles are a starting point, not a lock-in. Once a profile is active, each assault toggle stays independently overridable through the Dev UI or JSON-RPC, and those overrides survive restarts like any other Dev UI change. |
At startup, a non-NONE profile takes precedence over the static configuration: fromConfig first copies the static assault.type and per-assault parameters, then the profile defaults are applied on top — so a configured profile overrides the static toggles and parameters at boot. Tune the values afterwards through the Dev UI if needed.
|
The Profile section of the Chaos Dashboard: pick a predefined assault mode in one click — the active profile also appears in the status bar.
The active profile is displayed in the Dev UI status bar and included in the Markdown report and the describeAssaults() snapshot recorded in the assault history.