Tools

All of the Filibuster tools are available through the filibuster Python package that can be installed using pip.

Filibuster

Perform resilience testing with Filibuster.

% filibuster --help
Usage: filibuster [OPTIONS]

  Test a microservice application using Filibuster.

Options:
  --functional-test TEXT      Functional test to run.  [required]
  --analysis-file TEXT        Analysis file.
  --counterexample-file TEXT  Counterexample file to run.
  --only-initial-execution    Only run the initial, fault-free execution of
                              the test.
  --disable-dynamic-reduction Disable dynamic reduction.
  --help                      Show this message and exit.
Options

Field

Presence

Data Type

Description

functional-test

Required

String

The functional test for the microservice application.
Filibuster assumes this program will return a non-zero exit code on failure and a zero exit code on success.

analysis-file

Optional

String

File containing the list of faults to inject produced by filibuster-analysis.
If not provided, a default set of faults will be used.

counterexample-file

Optional

String

Counterexample produced by filibuster on failure.
Used to re-execute a single failed test generated by Filibuster.

only-initial-execution

Optional

Flag

Only run the initial, fault-free execution of the functional test.

disable-dynamic-reduction

Optional

Flag

Disable dynamic reduction.

Filibuster Analysis

Analyze an application to determine service-specific faults that should be injected using Filibuster.

% filibuster-analysis --help
Usage: filibuster-analysis [OPTIONS]

  Generate an analysis file for an application for use with Filibuster.

Options:
  --output-file TEXT         File to write the instrumentation output to.
                             [required]
  --services-directory TEXT  Directory containing service implementations, one
                             directory for each service named for the service,
                             containing the implementation.  [required]
  --help                     Show this message and exit.
Options

Field

Presence

Data Type

Description

output-file

Required

String

Location where the analysis file should be written.

services-directory

Required

String

Path to the directory containing service implementations.
Assumes that each service is in a directory named after that service.

Filibuster Coverage

Aggregate coverage for Python microservices across all Filibuster runs and produce an HTML report.

% filibuster-coverage --help
Usage: filibuster-coverage [OPTIONS]

  Compute coverage for an application.

Options:
  --help  Show this message and exit.