MCPcopy
hub / github.com/Netflix/chaosmonkey

github.com/Netflix/chaosmonkey @v2.1.3 sqlite

repository ↗ · DeepWiki ↗ · release v2.1.3 ↗
530 symbols 1,764 edges 75 files 390 documented · 74%
README

logo

NetflixOSS Lifecycle Build Status GoDoc GoReportCard

Chaos Monkey randomly terminates virtual machine instances and containers that run inside of your production environment. Exposing engineers to failures more frequently incentivizes them to build resilient services.

See the documentation for info on how to use Chaos Monkey.

Chaos Monkey is an example of a tool that follows the Principles of Chaos Engineering.

Requirements

This version of Chaos Monkey is fully integrated with Spinnaker, the continuous delivery platform that we use at Netflix. You must be managing your apps with Spinnaker to use Chaos Monkey to terminate instances.

Chaos Monkey should work with any backend that Spinnaker supports (AWS, Google Compute Engine, Azure, Kubernetes, Cloud Foundry). It has been tested with AWS, GCE, and Kubernetes.

Install locally

To install the Chaos Monkey binary on your local machine:

go get github.com/netflix/chaosmonkey/cmd/chaosmonkey

How to deploy

See the docs for instructions on how to configure and deploy Chaos Monkey.

Support

Simian Army Google group.

Extension points exported contracts — how you extend this code

AppConfigGetter (Interface)
AppConfigGetter retrieves App configuration info [5 implementers]
chaosmonkey.go
SchedStore (Interface)
SchedStore stores schedule of terminations [3 implementers]
schedstore/schedstore.go
Deployment (Interface)
Deployment contains information about how apps are deployed [2 implementers]
deploy/deployment.go
CurrentExecutable (Interface)
CurrentExecutable provides an interface to extract information about the current executable [2 implementers]
command/install.go
Clock (Interface)
Clock provides an interface to the current time, useful for testing [2 implementers]
clock/clock.go
InstanceGroup (Interface)
InstanceGroup represents a group of instances [1 implementers]
grp/grp.go
Constrainer (Interface)
Constrainer provides additional constraints on a schedule [1 implementers]
schedule/constrainer.go
RemoteConfigFactory (Interface)
RemoteConfigFactory is the same interface as viper.remoteConfigFactory This is a workaround to be able to support backen [1 …
config/monkey.go

Core symbols most depended-on inside this repo

New
called by 131
grp/grp.go
Error
called by 72
term/term.go
ASGName
called by 46
chaosmonkey.go
Set
called by 39
config/monkey.go
ClusterName
called by 25
chaosmonkey.go
RegionName
called by 24
chaosmonkey.go
AccountName
called by 21
chaosmonkey.go
Name
called by 20
deploy/app.go

Shape

Method 230
Function 203
Struct 63
Interface 17
TypeAlias 17

Languages

Go100%

Modules by API surface

config/monkey.go54 symbols
deploy/deployment.go36 symbols
chaosmonkey.go35 symbols
schedule/schedule.go24 symbols
grp/grp.go23 symbols
spinnaker/spinnaker.go22 symbols
migration/migrations.go20 symbols
eligible/eligible.go20 symbols
mysql/mysql.go18 symbols
deploy/app.go15 symbols
deploy/asg.go13 symbols
mock/deps.go11 symbols

Dependencies from manifests, versioned

github.com/SmartThingsOSS/frigga-gov0.0.0-2018082723071 · 1×
github.com/davecgh/go-spewv1.1.1 · 1×
github.com/fsnotify/fsnotifyv1.3.2-0.20160816051 · 1×
github.com/go-sql-driver/mysqlv1.2.1-0.20160802113 · 1×
github.com/hashicorp/hclv0.0.0-2016091613010 · 1×
github.com/kardianos/osextv0.0.0-2016081100152 · 1×
github.com/kr/fsv0.0.0-2013111101255 · 1×
github.com/lib/pqv1.10.7 · 1×
github.com/magiconair/propertiesv1.7.1-0.20160908093 · 1×
github.com/mattn/go-sqlite3v1.14.16 · 1×
github.com/mitchellh/mapstructurev0.0.0-2016080818125 · 1×
github.com/pelletier/go-buffruneiov0.1.0 · 1×

For agents

$ claude mcp add chaosmonkey \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact