Source File:


Describes an Experiment that GlooShot should run

Field Type Description Default
metadata the object metadata for this resource
status indicates whether or not the spec is valid set by glooshot, intended to be read by clients
spec configuration for the Experiment
result the result of the experiment


"failureReport": map<string, string>
"timeStarted": .google.protobuf.Timestamp
"timeFinished": .google.protobuf.Timestamp
Field Type Description Default
state the current state of the experiment as reported by glooshot
failureReport map<string, string> arbitrary data summarizing a failure in case one occurred
timeStarted .google.protobuf.Timestamp time the experiment was started
timeFinished .google.protobuf.Timestamp the time the experiment completed


Name Description
Pending Experiment has not started
Started Experiment started but threshold not met
Failed Experiment failed, threshold was exceeded
Succeeded Experiment succeeded, duration elapsed If duration is not specified, the Experiment will never be marked Succeeded


"faults": []
"failureConditions": []
"duration": .google.protobuf.Duration
Field Type Description Default
faults [] the faults this experiment will inject if empty, Glooshot will run a “control” experiment with no faults injected
failureConditions [] conditions on which to stop the experiment and mark it as failed at least one must be specified
duration .google.protobuf.Duration the duration for which to run the experiment if missing or set to 0 the experiment will run indefinitely only Experiments with a timeout can succeed
targetMesh The mesh to which the experiment will be applied. Must match a CRD. If a cluster only has a single mesh, this value is not needed, Glooshot will default to the only possible option.


decribes a single fault to inject

"originServices": []
"destinationServices": []
Field Type Description Default
originServices [] if specified, the fault will only apply to requests sent from these services
destinationServices [] if specified, the fault will only apply to requests sent to these services
fault the type of fault to inject


a condition based on an observed prometheus metric

"webhookUrl": string
Field Type Description Default
webhookUrl string if HTTP GET returns non-200 status code, the condition was met
prometheusTrigger trigger a failure on observed prometheus metric


"customQuery": string
"thresholdValue": float
"comparisonOperator": string
Field Type Description Default
customQuery string a user-specified query as an inline string
successRate query the success rate for a specific service
thresholdValue float consider the failure condition met if the metric falls below this threshold
comparisonOperator string the comparison operator to use when comparing the threshold and observed metric values if the comparison evaluates to true, the failure condition will be considered met possible values are ‘==’, ‘>’, ‘<‘, ‘>=’, and ‘<=’ defaults to ‘<’


returns the # of non-5XX requests / total requests for the given interval

"interval": .google.protobuf.Duration
Field Type Description Default
service the service whose success rate Glooshot should monitor
interval .google.protobuf.Duration the time interval over which the success rate should be measured defaults to 1 minute