← Back to all products

Chaos Engineering Toolkit

$49

Chaos experiment designs, Litmus/Gremlin configs, failure injection scripts, and game day planning templates.

📁 25 files
YAMLMarkdownPython

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 25 files

chaos-engineering-toolkit/ ├── LICENSE ├── README.md ├── experiments/ │ ├── dependency_failure.yaml │ ├── latency_injection.yaml │ └── pod_failure.yaml ├── free-sample.zip ├── guide/ │ ├── 01-chaos-engineering-foundations.md │ ├── 02-experiment-design.md │ ├── 03-steady-state-hypothesis.md │ ├── 04-game-day-planning.md │ └── 05-chaos-maturity-model.md ├── guides/ │ └── chaos_maturity_model.md ├── index.html ├── src/ │ ├── __init__.py │ ├── __pycache__/ │ │ ├── __init__.cpython-312.pyc │ │ ├── blast_radius.cpython-312.pyc │ │ ├── failure_injector.cpython-312.pyc │ │ └── steady_state.cpython-312.pyc │ ├── blast_radius.py │ ├── failure_injector.py │ └── steady_state.py ├── templates/ │ ├── experiment_proposal.md │ └── gameday_plan.md └── tests/ ├── __pycache__/ │ └── test_chaos.cpython-312.pyc └── test_chaos.py

📖 Documentation Preview README excerpt

Chaos Engineering Toolkit

A comprehensive toolkit for designing, executing, and managing chaos engineering experiments. Includes Python failure injection libraries (stdlib only), experiment configurations, game day templates, and a maturity model guide.

Features

  • Failure Injection Engine — Decorator-based latency/error/resource injection with safety controls
  • Steady-State Hypothesis Checker — Define and evaluate system health before, during, and after experiments
  • Blast Radius Control — Progressive expansion with consistent hashing, automatic abort, and kill switch
  • Experiment Catalog — Pre-built YAML experiment definitions for common failure scenarios
  • Game Day Templates — Structured planning documents for team chaos exercises
  • Maturity Model Guide — Five-level progression framework for building a chaos program

File Structure


chaos-engineering-toolkit/
├── README.md                              # This file
├── LICENSE                                # MIT License
├── src/
│   ├── __init__.py                        # Package initialization
│   ├── failure_injector.py                # Failure injection engine (latency, errors, resource)
│   ├── steady_state.py                    # Hypothesis checking and health monitoring
│   └── blast_radius.py                    # Blast radius control and progressive expansion
├── tests/
│   └── test_chaos.py                      # Unit tests for all modules
├── experiments/
│   ├── latency_injection.yaml             # Network latency experiment config
│   ├── pod_failure.yaml                   # Instance/pod termination experiment
│   └── dependency_failure.yaml            # Complete dependency failure experiment
├── templates/
│   ├── gameday_plan.md                    # Game day planning template
│   └── experiment_proposal.md             # Experiment proposal template
└── guides/
    └── chaos_maturity_model.md            # Five-level maturity model and program guide

Requirements

  • Python 3.10+ (uses modern type hints, dataclasses, match statements)
  • Standard library only — no external dependencies

Quick Start

1. Inject Latency Into a Function


from src.failure_injector import FailureInjector, InjectionConfig, FailureType

injector = FailureInjector()
config = InjectionConfig(
    failure_type=FailureType.LATENCY,
    probability=0.3,         # Affect 30% of calls
    latency_ms=500,          # Add 500ms delay
    duration_seconds=300,    # Run for 5 minutes
    blast_radius_pct=30.0,   # Safety: never exceed 30%
)
injector.activate(config)

@injector.inject_latency(config)

*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

src/blast_radius.py """ Blast Radius Limiter - Controls the scope and impact of chaos experiments. Blast radius is the "damage zone" of an experiment: what percentage of users, requests, or infrastructure is affected. Controlling blast radius is the primary safety mechanism in chaos engineering. This module provides: - Traffic segmentation (only affect N% of requests) - Geographic scoping (only affect one region/AZ) - User targeting (only affect internal/canary users) - Automatic abort when impact exceeds thresholds - Progressive expansion (start small, increase if safe) """ from dataclasses import dataclass, field from datetime import datetime, timedelta from enum import Enum from typing import Callable, Optional import hashlib import logging import time logger = logging.getLogger(__name__) class ScopeType(Enum): """How the blast radius is scoped.""" PERCENTAGE = "percentage" # Affect X% of all traffic REGION = "region" # Affect one geographic region CANARY = "canary" # Affect only canary/internal users SERVICE = "service" # Affect one service instance PROGRESSIVE = "progressive" # Start small, expand over time @dataclass class BlastRadiusConfig: """Configuration for blast radius control. Attributes: scope_type: How traffic is segmented. initial_pct: Starting percentage of traffic affected. max_pct: Maximum percentage allowed (hard ceiling). expansion_interval_seconds: How often to expand (for progressive). expansion_step_pct: How much to expand each step. abort_threshold: Impact metric value that triggers automatic abort. target_segments: Specific segments to target (regions, user groups). exclude_segments: Segments to always exclude from experiments. """ scope_type: ScopeType = ScopeType.PERCENTAGE # ... 315 more lines ...
Buy Now — $49 Back to Products