{"id":13570529,"url":"https://github.com/codecentric/chaos-monkey-spring-boot","last_synced_at":"2025-05-13T21:10:35.526Z","repository":{"id":24059258,"uuid":"87402251","full_name":"codecentric/chaos-monkey-spring-boot","owner":"codecentric","description":"Chaos Monkey for Spring Boot","archived":false,"fork":false,"pushed_at":"2025-05-09T13:47:56.000Z","size":6245,"stargazers_count":925,"open_issues_count":8,"forks_count":173,"subscribers_count":38,"default_branch":"main","last_synced_at":"2025-05-09T14:43:17.590Z","etag":null,"topics":["chaos","chaos-engineering","chaos-monkey","chaos-testing","chaostoolkit","engineering","java","resilience","resilience-testing","spring","spring-boot","spring-cloud","spring-cloud-netflix","test-framework","testing","testing-tools"],"latest_commit_sha":null,"homepage":"https://codecentric.github.io/chaos-monkey-spring-boot/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codecentric.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.adoc","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,"zenodo":null}},"created_at":"2017-04-06T07:56:01.000Z","updated_at":"2025-05-08T07:40:21.000Z","dependencies_parsed_at":"2023-10-12T23:26:50.516Z","dependency_job_id":"b3a24c2b-56f4-4671-a159-20450d09205b","html_url":"https://github.com/codecentric/chaos-monkey-spring-boot","commit_stats":{"total_commits":693,"total_committers":53,"mean_commits":"13.075471698113208","dds":0.7258297258297258,"last_synced_commit":"41a3f715a8723efa37196a7ced5acb43bcec1329"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecentric%2Fchaos-monkey-spring-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecentric%2Fchaos-monkey-spring-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecentric%2Fchaos-monkey-spring-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecentric%2Fchaos-monkey-spring-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codecentric","download_url":"https://codeload.github.com/codecentric/chaos-monkey-spring-boot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254029002,"owners_count":22002283,"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","chaos-engineering","chaos-monkey","chaos-testing","chaostoolkit","engineering","java","resilience","resilience-testing","spring","spring-boot","spring-cloud","spring-cloud-netflix","test-framework","testing","testing-tools"],"created_at":"2024-08-01T14:00:53.048Z","updated_at":"2025-05-13T21:10:30.506Z","avatar_url":"https://github.com/codecentric.png","language":"Java","readme":"[![Apache License 2](https://img.shields.io/github/license/codecentric/chaos-monkey-spring-boot)](https://www.apache.org/licenses/LICENSE-2.0.txt)\n[![Build Status](https://github.com/codecentric/chaos-monkey-spring-boot/workflows/Chaos%20Monkey%20Build/badge.svg)](https://github.com/codecentric/chaos-monkey-spring-boot/actions?query=workflow%3A%22Chaos+Monkey+Build%22)\n[![codecov](https://codecov.io/gh/codecentric/chaos-monkey-spring-boot/branch/main/graph/badge.svg)](https://codecov.io/gh/codecentric/chaos-monkey-spring-boot)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/de.codecentric/chaos-monkey-spring-boot/badge.svg)](https://maven-badges.herokuapp.com/maven-central/de.codecentric/chaos-monkey-spring-boot/)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.adoc)\n\n[![Open in Gitpod](https://img.shields.io/badge/Open%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/codecentric/chaos-monkey-spring-boot)\n[![VS Code DevContainer](https://img.shields.io/static/v1?label=VS+Code\u0026message=DevContainer\u0026logo=visualstudiocode\u0026color=007ACC\u0026logoColor=007ACC\u0026labelColor=2C2C32)](https://open.vscode.dev/microsoft/vscode)\n\n\n# Chaos Monkey for Spring Boot\n### inspired by Chaos Engineering at Netflix\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/sb-chaos-monkey-logo.png\"\u003e\n\u003c/p\u003e\n\nThis project provides a Chaos Monkey for Spring Boot applications and will try to attack your running Spring Boot App.\n\n\u003eEverything from getting started to advanced usage is explained in the [Documentation for Chaos Monkey for Spring Boot](https://codecentric.github.io/chaos-monkey-spring-boot/latest/) \n\n## Introduction\nIf you're not familiar with the principles of chaos engineering yet, check out this blog post and enter the world of chaos engineering.\n\n\u003ca href=\"https://blog.codecentric.de/en/2018/07/chaos-engineering/\" target=\"_blank\"\u003e\u003cimg src=\"https://pbs.twimg.com/media/DhaRNO7XUAAi00i.jpg\" \nalt=\"Chaos Engineering – withstanding turbulent conditions in production\" width=\"260\" height=\"155\" border=\"10\" /\u003e\u003c/a\u003e\u003cbr\u003e\n\nGet familiar with the Chaos Monkey for Spring Boot in the following video, \u003ca href=\"https://goo.gl/r2Tmig\" target=\"_blank\"\u003eavailable on YouTube\u003c/a\u003e:\n\n\u003ca href=\"https://goo.gl/r2Tmig\" target=\"_blank\"\u003e\u003cimg src=\"https://i.ytimg.com/vi/7sQiIR9qCdA/maxresdefault.jpg\" \nalt=\"Chaos Monkey for Spring Boot\" width=\"260\" height=\"155\" border=\"10\" /\u003e\u003c/a\u003e\u003cbr\u003e\n\n## What is the goal of Chaos Monkey?\n\nInspired by [PRINCIPLES OF CHAOS ENGINEERING](https://principlesofchaos.org/), with a focus on [Spring Boot](https://projects.spring.io/spring-boot/), Chaos Monkey wants to test applications better and especially during operation.\n\nAfter writing many unit and integration tests, a code coverage from 70% to 80%, this unpleasant feeling remains, how our baby behaves in production?\n\nMany questions remain unanswered:\n\n- Will our fallbacks work?\n- How does the application behave with network latency?\n- What if one of our services breaks down?\n- Service Discovery works, but is our Client-Side-Load-Balancing also working?\n\nAs you can see, there are many more questions and open topics you have to deal with.\n\nThat was the start of Chaos Monkey for Spring Boot.\n\n### How does it work?\nIf Spring Boot Chaos Monkey is on your classpath and activated with profile name `chaos-monkey`, it will automatically hook into your application. \n\nNow you can activate [watchers](https://codecentric.github.io/chaos-monkey-spring-boot/latest/#watchers), which look for classes to [assault](https://codecentric.github.io/chaos-monkey-spring-boot/latest/#assaults). There are also [runtime assaults](https://codecentric.github.io/chaos-monkey-spring-boot/latest/#runtime-assaults), which attack your whole application.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg class=\"imgborder s1\" width=\"90%\" src=\"docs/images/sb-chaos-monkey-architecture.png\"\u003e\n\u003c/p\u003e\n\n## Be social and communicative!\nIf you start to implement Chaos Engineering at your company, then you must be a very social and communicative person. Why? Because you will get to know many of your colleagues personally in a very short time when your chaos experiments strike.\n\n### Check your resilience\nAre your services already resilient and can handle failures? Don´t start a chaos experiment if not!\n\n### Implement active application monitoring\nCheck your monitoring and check if you can see the overall state of your system. There are many great tools out there to get a pleasant feeling about your entire system.\n\n### Define steady states\nDefine a metric to check a steady state of your service and of course your entire system. Start small with a service that is not critical.\n\n### Do not start in production\nOf course, you can start in production, but keep in mind...\n\n\u003e The best place on earth is...production!\u003cbr\u003e\n\u003e *Josh Long*\n\n...so let's keep production as the best place on earth and look for our first experiences on another stage. If all goes well, and you're confident, run it in production.\n\n## Documentation\n[Documentation](https://codecentric.github.io/chaos-monkey-spring-boot/latest/)\n\n## Help\n\nWe are using GitHub issues to track bugs, improvements and new features (for more information see [Contributions](#contributions)). If you have a general question on how to use Chaos Monkey for Spring Boot, please ask on Stack Overflow using the tag [`#spring-boot-chaos-monkey`](https://stackoverflow.com/questions/tagged/spring-boot-chaos-monkey).\n\n## Contributions \nChaos Monkey is open source and welcomes contributions from everyone. The [contribution guideline](https://github.com/codecentric/chaos-monkey-spring-boot/blob/main/CONTRIBUTING.adoc) is where you should begin in order to best understand how to contribute to this project. \n\n\n\n## Releases\n[Releases](https://github.com/codecentric/chaos-monkey-spring-boot/releases)\n","funding_links":[],"categories":["Java","Projects","容错组件"],"sub_categories":["Chaos"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecentric%2Fchaos-monkey-spring-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodecentric%2Fchaos-monkey-spring-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecentric%2Fchaos-monkey-spring-boot/lists"}