Fault Injection

Fault injection is a system testing method which involves the deliberate introduction of network faults and errors into a system. It can be used to identify design or configuration weaknesses, and to ensure that the system can handle faults and recover from error conditions.

With Service Mesh Manager, you can inject failures at the application layer to test the resiliency of the services. You can configure faults to be injected into requests that match specific conditions to simulate service failures and higher latency between services. There are two types of failures:

  • Delay adds a time delay before forwarding the requests, emulating various failures such as network issues, an overloaded upstream service, and so on.

  • Abort aborts the HTTP request attempts and returns error codes to a downstream service, giving the impression that the upstream service is faulty.

Service Mesh Manager uses Istio’s - and therefore Envoy’s - fault injection feature under the hood.

Fault injection using the UI

To configure fault injection on the UI, complete the following steps.

  1. Select the service on the MENU > SERVICES or the MENU > TOPOLOGY page.

    Traffic management tab Traffic management tab

  2. Select TRAFFIC MANAGEMENT > CREATE NEW.

  3. Set the destination PORT NUMBER of the service where you want to add the rule.

  4. By default, the new rule matches every incoming request. Click ADD CUSTOM MATCH to select only specific traffic for the rule based on scheme, method, URI, host, port, or authority.

    Inject faults into the traffic Inject faults into the traffic

  5. Scroll down, select FAULT INJECTION, and set the percentage of traffic you want to add faults to, and the amount of delay or the HTTP error code to return.

    Fault injection parameters Fault injection parameters

  6. Click Apply, then check the status of the service on the MENU > TOPOLOGY page. You should see the effects of the injected faults (for example, a delay in the response times).

    Faults in the service Faults in the service