{"id":17259640,"url":"https://github.com/josephwoodward/chaosproxy","last_synced_at":"2025-07-20T13:33:44.691Z","repository":{"id":67914842,"uuid":"92157075","full_name":"josephwoodward/chaosproxy","owner":"josephwoodward","description":"A simple means of introducing chaos into your infrastructure for Windows, Mac and Linux.","archived":false,"fork":false,"pushed_at":"2017-07-03T14:12:09.000Z","size":33,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-16T10:55:10.589Z","etag":null,"topics":["chaos-engineering","go","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josephwoodward.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-23T09:52:59.000Z","updated_at":"2022-05-23T20:18:32.000Z","dependencies_parsed_at":"2023-02-21T08:16:00.636Z","dependency_job_id":null,"html_url":"https://github.com/josephwoodward/chaosproxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/josephwoodward/chaosproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephwoodward%2Fchaosproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephwoodward%2Fchaosproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephwoodward%2Fchaosproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephwoodward%2Fchaosproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josephwoodward","download_url":"https://codeload.github.com/josephwoodward/chaosproxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephwoodward%2Fchaosproxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266135014,"owners_count":23881774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chaos-engineering","go","golang"],"created_at":"2024-10-15T07:45:41.226Z","updated_at":"2025-07-20T13:33:44.685Z","avatar_url":"https://github.com/josephwoodward.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chaos Proxy\n\nA controlled means of introducing chaos into your infrastructure for Windows, Mac and Linux.\n\nFeatures:\n- Target HTTP endpoints (including DynamoDB, S3, or HTTP based APIs) via hostname or path regular expression\n- Ability to target only a proportion of requests (ie: 30% of requests will timeout)\n- Force latency or simulate throttling on HTTP based APIs\n- Specify response status code\n\n## How to use it:\n\n### Step 1: Create a config file\n\n```yml\n# config.yml\n\nconfig:\n  enabled: true # optional\n  port: 8082\n  \nendpoints:\n   \n  - host: (\\S+)-consumer-iapi-(\\S+)$ # required\n    url: \\/consumer\\/optinflow(\\/?)$ # required\n    delay: 5000 # optional - default is 0\n    range: 50 # optional - default is 100\n    responseStatusCode: 504 # optional - default is 200\n  \n  - host: (\\S+)-public-iapi-(\\S+)$\n    url: \\/authorize\\/providers\\?tenant=(es|ie|it)$\n    delay: 5000\n    range: 30\n  \n  - host: www.bbc.co.uk$\n    url: \\/weather(\\/?)$\n    delay: 5000\n    range: 100\n    responseStatusCode: 504\n  \n  - host: ^dynamodb.(\\S+)$\n    url: ^(\\S+)$\n    delay: 5000\n    range: 100\n```\n\n### Step 2: Run it\n\n```\n$ chaos_proxy.exe -logtostderr=true\n```\n\nNote: Use `$ chaos_proxy.exe -h` to view all CLI options.\n\n### Step 3: Proxy requests\n\n**IIS:**\n\nAdd this to your web.config:\n\n```\n\u003csystem.net\u003e\n    \u003cdefaultProxy enabled=\"true\"\u003e\n        \u003cproxy proxyaddress=\"http://127.0.0.1:{your port number}\" bypassonlocal=\"False\"/\u003e\n    \u003c/defaultProxy\u003e\n\u003c/system.net\u003e\n```\n\nYou may need to restart IIS `iisreset /stop` then `iisreset /start`\n\n**Firefox:** \n\nIn Firefox go to `Options \u003e Advanced \u003e Network \u003e Connection Settings`\n\n## Compatibility:\n\n- Mac\n- Windows\n- Linux\n\n## Coming soon\n\n- Ability to target requests based on HTTP request methods (GET, POST etc)\n- HTTP endpoint allowing you to post behaviour changes to Chaos Proxy\n- Dashboard allowing you to visualise traffic flowing through proxy and matching behaviours\n- Set behaviour rules to activate/deactivate between certain dates and times\n- Watch for config file changes\n- Tests!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephwoodward%2Fchaosproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosephwoodward%2Fchaosproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephwoodward%2Fchaosproxy/lists"}