Giter Club home page Giter Club logo

chaosblade-io / chaosblade Goto Github PK

View Code? Open in Web Editor NEW
5.8K 180.0 924.0 4.67 MB

An easy to use and powerful chaos engineering experiment toolkit.(阿里巴巴开源的一款简单易用、功能强大的混沌实验注入工具)

Home Page: https://chaosblade.io

License: Apache License 2.0

Makefile 5.27% Dockerfile 1.97% Go 91.40% C 1.36%
chaos-engineering fault-injection microservice kubernetes fault site-reliability-engineering chaos-testing alibaba

chaosblade's Introduction

logo

Chaosblade: An Easy to Use and Powerful Chaos Engineering Toolkit

Build Status Financial Contributors on Open Collective codecov license CII Best Practices

中文版 README

Introduction

ChaosBlade is an Alibaba open source experimental injection tool that follows the principles of chaos engineering and chaos experimental models to help enterprises improve the fault tolerance of distributed systems and ensure business continuity during the process of enterprises going to cloud or moving to cloud native systems.

Chaosblade is an internal open source project of MonkeyKing. It is based on Alibaba's nearly ten years of failure testing and drill practice, and combines the best ideas and practices of the Group's businesses.

ChaosBlade is not only easy to use, but also supports rich experimental scenarios. The scenarios include:

  • Basic resources: such as CPU, memory, network, disk, process and other experimental scenarios;
  • Java applications: such as databases, caches, messages, JVM itself, microservices, etc. You can also specify any class method to inject various complex experimental scenarios;
  • C ++ applications: such as specifying arbitrary methods or experimental lines of code injection delay, tampering with variables and return values;
  • container: such as killing the container, the CPU in the container, memory, network, disk, process and other experimental scenarios;
  • Cloud-native platforms: For example, CPU, memory, network, disk, and process experimental scenarios on Kubernetes platform nodes, Pod network and Pod itself experimental scenarios such as killing Pods, and container experimental scenarios such as the aforementioned Docker container experimental scenario;

Encapsulating scenes by domain into individual projects can not only standardize the scenes in the domain, but also facilitate the horizontal and vertical expansion of the scenes. By following the chaos experimental model, the chaosblade cli can be called uniformly. The items currently included are:

  • chaosblade: Chaos experiment management tool, including commands for creating experiments, destroying experiments, querying experiments, preparing experimental environments, and canceling experimental environments. It is the execution of chaotic experiments. Tools, execution methods include CLI and HTTP. Provides complete commands, experimental scenarios, and scenario parameter descriptions, and the operation is simple and clear.
  • chaosblade-spec-go: Chaos experimental model Golang language definition, scenes implemented using Golang language are easy to implement based on this specification.
  • chaosblade-exec-os: Implementation of basic resource experimental scenarios.
  • chaosblade-exec-docker: Docker container experimental scenario implementation, standardized by calling the Docker API.
  • chaosblade-exec-cri: Container experimental scenario implementation, standardized by calling the CRI.
  • chaosblade-operator: Kubernetes platform experimental scenario is implemented, chaos experiments are defined by Kubernetes standard CRD method, it is very convenient to use Kubernetes resource operation method To create, update, and delete experimental scenarios, including using kubectl, client-go, etc., and also using the chaosblade cli tool described above.
  • chaosblade-exec-jvm: Java application experimental scenario implementation, using Java Agent technology to mount dynamically, without any access, zero-cost use It also supports uninstallation and completely recycles various resources created by the Agent.
  • chaosblade-exec-cplus: C ++ application experimental scenario implementation, using GDB technology to implement method and code line level experimental scenario injection.

CLI Command

You can download the latest chaosblade toolkit from Releases and extract it and use it. If you want to inject Kubernetes related fault scenarios, you need to install chaosblade-operator. For detailed Chinese usage documents, please see chaosblade-help-zh-cn .

chaosblade supports CLI and HTTP invocation methods. The supported commands are as follows:

  • prepare: alias is p, preparation before the chaos engineering experiment, such as drilling Java applications, you need to attach the java agent. For example, to drill an application whose application name is business, execute blade p jvm --process business on the target host. If the attach is successful, return the uid for status query or agent revoke.
  • revoke: alias is r, undo chaos engineering experiment preparation before, such as detaching java agent. The command is blade revoke UID
  • create: alias is c, create a chaos engineering experiment. The command is blade create [TARGET] [ACTION] [FLAGS]. For example, if you implement a Dubbo consumer call xxx.xxx.Service interface delay 3s, the command executed is blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service, if the injection is successful, return the experimental uid for status query and destroy the experiment.
  • destroy: alias is d, destroy a chaos engineering experiment, such as destroying the Dubbo delay experiment mentioned above, the command is blade destroy UID
  • status: alias s, query preparation stage or experiment status, the command is blade status UID or blade status --type create
  • server: start the web server, expose the HTTP service, and call chaosblade through HTTP requests. For example, execute on the target machine xxxx: blade server start -p 9526 to perform a CPU full load experiment:curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"

Use the blade help [COMMAND] or blade [COMMAND] -h command to view help

Experience Demo

Download the chaosblade demo image and experience the use of the blade toolkit

demo.gif

Download image command:

docker pull chaosbladeio/chaosblade-demo

Run the demo container:

docker run -it --privileged chaosbladeio/chaosblade-demo

After entering the container, you can read the README.txt file to implement the chaos experiment, Enjoy it.

Cloud Native

chaosblade-operator The project is a chaos experiment injection tool for cloud-native platforms. It follows the chaos experiment model to standardize the experimental scenario and defines the experiment as Kubernetes CRD Resources, mapping experimental models to Kubernetes resource attributes, and very friendly combination of chaotic experimental models with Kubernetes declarative design. While relying on chaotic experimental models to conveniently develop scenarios, it can also well integrate Kubernetes design concepts, through kubectl or Write code to directly call the Kubernetes API to create, update, and delete chaotic experiments, and the resource status can clearly indicate the execution status of the experiment, and standardize Kubernetes fault injection. In addition to using the above methods to perform experiments, you can also use the chaosblade cli method to execute kubernetes experimental scenarios and query the experimental status very conveniently. For details, please read the chinese document: Chaos Engineering Practice under Cloud Native

Compile

This project is written in golang, so you need to install the latest golang version first. The minimum supported version is 1.11. After the Clone project, enter the project directory and execute the following command to compile:

make

If on a mac system, compile the current system version, execute:

make build_darwin

If you want to compile linux system version on mac system, execute:

make build_linux

You can also compile selectively, for example, you only need to compile cli and os scenes, then execute:

make build_with cli os
# If it is a mac system, run
make build_with cli os_darwin
# If you want to compile linux system version selectively, execute:
ARGS="cli os" make build_with_linux

Arch Linux install chaosblade-bin

yay -S chaosblade-bin

Bugs and Feedback

For bug report, questions and discussions please submit GitHub Issues.

You can also contact us via:

Contributing

We welcome every contribution, even if it is just punctuation. See details of CONTRIBUTING. For the promotion ladder of specific community participation students, see: (Contributor Ladder)

Business Registration

The original intention of our open source project is to lower the threshold for chaos engineering to be implemented in enterprises, so we highly value the use of the project in enterprises. Welcome everyone here ISSUE. After registration, you will be invited to join the corporate mail group to discuss the problems encountered by Chaos Engineering in the landing of the company and share the landing experience.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

License

Chaosblade is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

chaosblade's People

Contributors

arthur657834 avatar christophernt avatar dreamquster avatar fjz99 avatar guohz-git avatar hqwhqwhq avatar jievince avatar kaushl2208 avatar mandsss avatar ms2008 avatar ondrej-fabry avatar raygenyang avatar sequarius avatar shihaodong8899 avatar sjha2048 avatar snyk-bot avatar sootysec avatar spencercjh avatar sunny0826 avatar super-long avatar swarag-n avatar taotieren avatar tiny-x avatar wangxiangustc avatar xcaspar avatar yixy avatar yuaninga avatar zeuskim avatar ziidu avatar zousheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chaosblade's Issues

Ambiguous parameter of CPU FULLLOAD in version 0.0.3

Issue Description

Type: bug report

Describe what happened (or what feature you want)

when create cpu fulload, setting cpu-count and cpu-list parameters at the same time, only the cpu-list parameter works and the system ignores the cpu-count parameter.
创建cpu fullload故障时,如果同时设定cpu-count和cpu-list参数,只有cpu-list参数生效,系统自动无视了cpu-count参数

Describe what you expected to happen

Add extra parameter explanation or prohibit coexistence.
添加额外的参数解释,或禁止两个参数共存

How to reproduce it (as minimally and precisely as possible)

  1. follow the official instrutions

Tell us your environment

Ubuntu 19.04

Anything else we need to know?

Mutual influence when different CPU are fullload with experimental destroy

The server has N CPUs
Mount one of the CPUs fullload
./blade create cpu fullload --numcpu 1
{"code":200,"success":true,"result":"51d50db1faf4fb80"}

Then mount one of the CPUs fullload
./blade create cpu fullload --numcpu 1
{"code":200,"success":true,"result":"96a4b01617f5f2f7"}

Destroy one of the mount experiments
./blade destroy 51d50db1faf4fb80

At this time, both CPU mount experiments will be destroyed.

Network command prompt to optimize

Issue Description

feature request

Describe what happened (or what feature you want)

Network command prompt to optimize. After change the port command will be easier to understand.

invoke-port change to foreign-port
service-port change to local-port

blade create network delay --invoke-port 9527 --time 5000 --device eth0

      --invoke-port string    Port for invoke
      --offset string         Delay offset time, ms
      --service-port string   Port for external service

support exclusive trace feature to identify testing source

Support exclusive trace feature to identify testing source

Type: feature request

In case of testing based on production environment, during collecting and analyzing every kind of logs, we need identify sources from testing by chaosblade in order to not affect actual business report.

Consider to implement with like TRACE ID.

Thank you.

Who is using ChaosBlade

Who is Using ChaosBlade

First of all, thanks sincerely for constantly using and supporting ChaosBlade. We will try our best to keep ChaosBlade better, and keep growing ChaosBlade community. To attract more people to use and contribute to ChaosBlade, please comment in this issue to include the following information:

  • Your company, school or organization.
  • Your city and country.
  • Your contact info: blog, email, twitter (at least one).
  • For what scenario do you use ChaosBlade

You can refer to the following sample answer for the format:

  • Company: Alibaba
  • Location: Hangzhou, China
  • Contact: [email protected]
  • Purpose: fault-injection for testing system fault tolerance

首先诚挚地感谢每一位持续关注并使用 ChaosBlade 的朋友。我们会持续投入,力图把 ChaosBlade 变得更好,把 ChaosBlade 社区变得更加繁荣。为了更好的聆听社区的声音,吸引更多的人使用和参与,我们期待您在此提交一条评论, 评论内容包括:

  • 您所在公司、学校或组织
  • 您所在的城市、国家
  • 您的联系方式: 微博、邮箱、微信 (至少一个)
  • 您将 ChaosBlade 用于哪些业务场景

您可以参考下面的样例来提供您的信息:

如果你被邀请加入 Google Group 后没有权限访问内容,则参考一下链接解决:
https://support.google.com/groups/answer/1067205?hl=zh-Hans#join

再次感谢你的参与!!!

Golang, php language interface support

希望支持 php,golang语言的接口的超时,延时测试,这样会更加有实用性的。

[email protected]

Issue Description

Type: bug report or feature request

Describe what happened (or what feature you want)

Describe what you expected to happen

How to reproduce it (as minimally and precisely as possible)

Tell us your environment

Anything else we need to know?

Under sudo, execute blade create network drop [], can't really destroy [Linux]

cmd

sudo ./blade create network drop --service-port 8888

response

{"code":200,"success":true,"result":"2b3bf570994e859e"}

查看iptables下已新增drop配置,接口测试后发现配置生效

cmd

sudo ./blade destroy 2b3bf570994e859e

接口测试后发现配置依然存在,查看iptables rules发现未被清除

Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8888
2 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:8888

run "docker cpu fullload" ,return "No such container"

Issue Description

run "docker fullload" ,return "No such container"

Describe what happened (or what feature you want)

First,I use docker ps find the containerID ,
Then,use blade c docker cpu fl --container containerID

Return:{"code":604,"success":false,"error":"Error: No such container: 3b42b47c83e4-cpu\n exit status 1"}

Am I using it correctly ?

mac build failed

Use 'make build_linux' on mac, occued error.
error meassage :
docker run --rm
-v :/go
-w /go/src/github.com/chaosblade-io/chaosblade
chaosblade-build-musl:latest
make: *** No targets specified and no makefile found. Stop.
make: *** [build_linux] Error 2

I have to install go env?

"disk fill" cannot deatroy

Type: bug report

I used './blade create disk fill --mount-on /home --size 1024' to create disk fill experiment, then I found a file named 'chaos_diskfilled.log.data' in /home, but the size of it is 2G (I use 'du -sh /home/chaos_diskfilled.log.data'), and this could not be destroyed by using './blade destroy uid'

Cannot get the return value when executing the command

Issue Description

Type: bug report or feature request

Describe what happened (or what feature you want)

WX20190505-141636@2x

WX20190505-141848@2x

Describe what you expected to happen

预期:希望允许Java代码能够获取返回值
实际:不能获取返回值

How to reproduce it (as minimally and precisely as possible)

Tell us your environment

Anything else we need to know?

Change device flag to interface flag in network chaos experiment

Issue Description

Type: other request

Describe what happened (or what feature you want)

the --device flag in network experiment means network interface, so changed to --interface is more better.

Describe what you expected to happen

blade create network delay --time 3000 --interface eth0

k8s kill pod name

Hi
I'm using blade to kill k8s pods. But can only kill one pod at one time
Is it possilbe to kill multiple pods at the same time ?
Thanks in advance

"blade",The execution path is relative and cannot be returned

blade 的执行路径为相对路径无法正常返回,在配置了PATH后希望能够在任何的目录可以正确返回。

blade 相对路径无法获得正确返回。

bash-4.4# pwd
/root
bash-4.4# blade status --type create
{
        "code": 200,
        "success": true,
        "result": []
}

blade 绝对路径获得正确返回。
`
bash-4.4# /usr/local/chaosblade/blade status --type create
{
"code": 200,
"success": true,
"result": [
{
"Uid": "19e24c09575c72a3",
"Command": "cpu",
"SubCommand": "fullload",
"Flag": "--debug false --help false --numcpu =",
"Status": "Error",
"Error": "--numcpu value must be a positive integer",
"CreateTime": "2019-04-22T06:53:05.976019806Z",
"UpdateTime": "2019-04-22T06:53:06.004371602Z"
},
{
"Uid": "e152863c6c363c92",
"Command": "cpu",
"SubCommand": "fullload",
"Flag": "--debug false --help false --numcpu 8",
"Status": "Success",
"Error": "",
"CreateTime": "2019-04-22T06:53:15.452192207Z",
"UpdateTime": "2019-04-22T06:53:16.605675253Z"
}
]
}

`

Add fault-injection model of the chaosblade

Issue Description

Type: doc

Describe what happened (or what feature you want)

Chaosblade and its executors rely on this model implementation, this document can help you understand the internal implementation of chaosblade.

Support a dry-run mode

Issue Description

feature request

Describe what happened (or what feature you want)

For most users , the first time applying chaos experiments must be very nervous. And there may be some reasons lead to failure. So consider to implement a dry_run mod .

Describe what you expected to happen

dry_run mod may achieve the following effects:

  • Do the read-only check actions ahead the experiments. Such as 'Envment Check: tc install check' 'Illegal parameter: mounted on value not exist ' and so on.
  • Print simulation logs which will happen. Such as 'Successfully shutdown instance A'.

If you are interested in this topic, please refer to : #73

connection refused when I prepare jvm

Issue Description

Type: bug report

Describe what happened (or what feature you want)

sudo blade prepare jvm -p 23306
{"code":802,"success":false,"error":"Get http://127.0.0.1:38895/sandbox/default/module/http/sandbox-module-mgr/reset?1=1: dial tcp 127.0.0.1:38895: connect: connection refused"}

Describe what you expected to happen

succeed.

How to reproduce it (as minimally and precisely as possible)

cannot.

Tell us your environment

Linux 3.12.74-60.64.96-default

Anything else we need to know?

[WeeklyReport] Weekly report for Chaos Blade 2019-4-26 to 2019-5-3

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
55 930 (↑31) 109 (↑3) 3 (-)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
3 0 1 1

PR Overview

Thanks to contributions from community, Chaos Blade team merged 1 pull requests in the repository last week. They are:

  • bugfix: fix --numcpu parameter strong check (#54)

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews

New Contributors

We have no new contributors in this project this week.
Chaos Blade team encourages everything about contribution from community.
For more details, please refer to https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .

Note: This robot is supported by Collabobot.

Add query command to get the necessary flags for chaos experiments

Issue Description

Type: feature request

Necessary flags such as the --mount-on flag of disk experiments and the --device flag of network experiments.

Describe what you expected to happen

For example:
Execute blade query network device command to query network interfaces, the command returns: ["eth0", "eth1", ...].

Execute blade query disk mounted-on command to query mounted disks, the command returns: ["/", "/home"].

We can abstract the following model:

blade query <TARGET> <FILED> <FLAGS>

In the future, we can control the output format by extending flags, for example, -o json|wide.

Anything else we need to know?

The advantage of this feature is that the user does not have to consider the chaos experiment parameters which type of value he should choose.

@aspnetdb @chaosblade-io/chaosblade_team

CPU benchmark timeout support

Issue Description

Remote host may not response while benchmarking CPU by full loads. So need add param to auto stop benchmark.

Maybe this param name can be named timeout, just as same as stress.

`stress' imposes certain types of compute stress on your system

Usage: stress [OPTION [ARG]] ...
...
 -t, --timeout N    timeout after N seconds
...

from stress --help command, in blade we can use with the same param name:

blade create cpu fullload --timeout 5 

这里有针对k8s的chaos功能么? 我自己用go写了一个

这是阿里开源的chaosblade对么? 我看文章里有针对k8s的功能。 我现在的工作也是需要模拟各种k8s的故障来测试。所以也用go写了个k8s chaos。 不知道能交流一下么。 如果有必要,我也可以贡献一下自己的代码

ubuntu run docker cpu fullload ok, but on centos fail

Issue Description
Type: help wanted

Describe what happened (or what feature you want)

First:
Though I read issue #12, I still can't understand.
I haven't pull docker image registry.cn-hangzhou.aliyuncs.com/chaosblade/chaosblade-agent:0.0.3 or other version. When I run
./blade create docker cpu fullload --container 4c5c3a7706ec --numcpu 8 on the Ubuntu system ,it return {"code":200,"success":true,"result":"83484e440a710e46"} .
But when I run on the Centos system, it return ******no such container .

Second:
When create docker cpu fullload failed on the Centos System, I pull the images "registry.cn-hangzhou.aliyuncs.com/chaosblade/chaosblade-agent:0.0.3" , and run "docker run -d -t --pid container:4c5c3a7706ec --ipc container:4c5c3a7706ec --name 4c5c3a7706ec-cpu sh -c /usr/local/chaosblade/bin/chaos_burncpu --start " , it return "docker: --pid:invalid PID mode". Where is my mistake?

"disk fill" filled a wrong mount point with MAX file size

Issue Description

Type: bug report

Describe what happened (or what feature you want)

blade create disk fill
fill the wrong mount point with max size data.

Describe what you expected to happen

fill the right mount point with specified size data.

How to reproduce it (as minimally and precisely as possible)

  1. Ubuntu 18.04 / blade 0.0.1
  2. wiki blade disk fill command.

Tell us your environment

Ubuntu 18.04
blade 0.0.1

Anything else we need to know?

avatar
avatar
avatar

[WeeklyReport] Weekly report for Chaos Blade 2019-4-5 to 2019-4-12

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
48 713 (↑124) 83 (↑18) 1 (-)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
9 4 4 4

PR Overview

Thanks to contributions from community, Chaos Blade team merged 4 pull requests in the repository last week. They are:

  • refactor: unify the disk experiment flag name and add value judgment (#35)
  • refactor: modify device to interface in network experiment (#34)
  • feature: add query command to query the network and the disk device t… (#27)
  • Simpify docker build: using go mod package manger and docker multi-stage builds. (#16)

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews

New Contributors

We have no new contributors in this project this week.
Chaos Blade team encourages everything about contribution from community.
For more details, please refer to https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .

Note: This robot is supported by Collabobot.

[WeeklyReport] Weekly report for Chaos Blade 2019-4-19 to 2019-4-26

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
53 891 (↑85) 106 (↑5) 3 (↑1)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
7 1 1 1

PR Overview

Thanks to contributions from community, Chaos Blade team merged 1 pull requests in the repository last week. They are:

  • Update Dockerfile (#47)

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews

Contributors Overview

It is Chaos Blade team's great honor to have new contributors from community. We really appreciate your contributions. Feel free to tell us if you have any opinion and please share this open source project with more people if you could. If you hope to be a contributor as well, please start from https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .
Here is the list of new contributors:

@ondrej-fabry

Thanks to you all.

Note: This robot is supported by Collabobot.

Add support for network experiments for kubernetes pod

Issue Description

Type: feature request

Describe what happened (or what feature you want)

Network experiments for k8s pod, for example, network delay, network loss and network block

Tell us your environment

kubernetes

Add script file chaos experiment such as delay and exit fault

Issue Description

Type: feature request

Describe what you expected to happen

Execute the following commands to inject a delay or an error code into a function in a specified script:
blade c script delay --time 3000 --file /home/admin/appctl.sh --function-name offline
blade c script exit --file /home/admin/appctl.sh --function-name offline --exit-code 2

[WeeklyReport] Weekly report for Chaos Blade 2019-4-12 to 2019-4-19

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
51 802 (↑83) 100 (↑14) 2 (↑1)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
4 9 2 3

PR Overview

Thanks to contributions from community, Chaos Blade team merged 3 pull requests in the repository last week. They are:

  • Update chaos experiment model document and add logic flow document (#42)
  • fix the disk mount point querying (#41)
  • bugfix: fix destroy experiment is delete k8s pod error (#38)

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews

Contributors Overview

It is Chaos Blade team's great honor to have new contributors from community. We really appreciate your contributions. Feel free to tell us if you have any opinion and please share this open source project with more people if you could. If you hope to be a contributor as well, please start from https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .
Here is the list of new contributors:

@Cenyol

Thanks to you all.

Note: This robot is supported by Collabobot.

[WeeklyReport] Weekly report for Chaos Blade 2019-3-22 to 2019-3-29

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
30 361 (↑322) 33 (↑31) 1 (-)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
11 2 1 0

PR Overview

Thanks to contributions from community, Chaos Blade team merged 0 pull requests in the repository last week. They are:

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews

New Contributors

We have no new contributors in this project this week.
Chaos Blade team encourages everything about contribution from community.
For more details, please refer to https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .

Note: This robot is supported by Collabobot.

[WeeklyReport] Weekly report for Chaos Blade 2019-3-29 to 2019-4-5

Weekly Report of Chaos Blade

This is a weekly report of Chaos Blade. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.
It is all done by @chaosblade-bot which is a collaborate robot.

Repo Overview

Basic data

Baisc data shows how the watch, star, fork and contributors count changed in the passed week.

Watch Star Fork Contributors
44 588 (↑155) 64 (↑23) 1 (-)

Issues & PRs

Issues & PRs show the new/closed issues/pull requests count in the passed week.

New Issues Closed Issues New PR Merged PR
10 7 2 2

PR Overview

Thanks to contributions from community, Chaos Blade team merged 2 pull requests in the repository last week. They are:

  • refactor: change service-port to local-port and invoke-port to remote… (#20)
  • Add .editorconfig & cpu load test params (#8)

Code Review Statistics

Chaos Blade encourages everyone to participant in code review, in order to improve software quality. Every week @chaosblade-bot would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.

Contributor ID Pull Request Reviews
@aspnetdb 1

New Contributors

We have no new contributors in this project this week.
Chaos Blade team encourages everything about contribution from community.
For more details, please refer to https://github.com/chaosblade-io/chaosblade/blob/master/CONTRIBUTING.md .

Note: This robot is supported by Collabobot.

execute a docker experiment,return Error: No such container

Issue Description

execute a docker experiment

command: blade create docker cpu fullload --container containerID
return:

{"code":604,"success":false,"error":"Error:` No such container: 8e8c31d91a2c-cpu\n exit status 1"}

Do i need enter the container and run the command ?

blade create docker -h Examples don't contain argument numcpu

Issue Description

bug report

Describe what happened (or what feature you want)

./blade create docker -h Examples don't contain argument numcpu
Examples:

Create a docker container full cpu load experiment

chaosbd create docker cpu fullload --container 1c8986a4f899

Describe what you expected to happen

Tell us your environment

CentOS Linux release 7.2.1511 (Core)

Can't stop k8s experiment correctly

Issue Description

Type: bug report

Describe what happened (or what feature you want)

./blade create k8s delete --pod <podname>  --namespace <namespace>
{"code":200,"success":true,"result":"9673223f227275fe"}

在创建混沌实验-删除pod后,停止混沌实验

./blade destroy 9673223f227275fe
{"code":604,"success":false,"error":"Error from server (NotFound): pods \"<podname>\" not found\n exit status 1"}

停止混沌实验失败,找不到这个pod。原因是该pod已被删除,重启后并不在是原来的podname。

Describe what you expected to happen

这里应该正常停止混沌实验,虽然pod已被正确的删除,而新pod也已经启动成功,整体来说实验室成功的,但是不能正常停止实验,对代码有强迫症的人来说是很难受的。
建议这里验证pod有无重启,并并忽略后5位的hash码。

How to reproduce it (as minimally and precisely as possible)

  1. ./blade create k8s delete --pod --namespace
  2. ./blade destroy

Tell us your environment

MacOS,kubectl v1.13.0

Anything else we need to know?

The way the servlet is created does not work for the delay mechanism

When I was creating a chaotic experiment for a servlet, I wanted a specific access address to be delayed for a few seconds. After the configuration was completed, it did not take effect. The configuration information is as follows.

Jar package start command:nohup java -Dserver.port=8081 -Djava.net.preferIPv4Stack=true -Dproject.name=ttt -jar ttt.jar > ttt.nohup.log 2>&1 &

Java agent:./blade prepare jvm --process ttt

Created command:./blade create servlet delay --time 3300 --pathinfo /test1 --process ttt --servletpath http://192.168.139.135:8081

After the configuration is complete, after all the displays are successful, the URL is accessed and found to be invalid.

If there is a solution, you can send the solution to my email address at [email protected]

I hope that you can have a detailed Chinese document to describe the role of each parameter and the configuration entry case for mounting different types of services. thank you very much. At the same time, I hope that chaosblade will be more perfect in the future road show and can go further.

The param timeout for blade cmd

Because of the quality of blade, sometime it may lead to us can't interact with target system. For example, we inject network fault with 80% loss rate, and cause we can't connect the server by ssh never. May be the full load for CPU also cause the system couldn't response us at all.

So, we need guardian, and it could terminate something and recover state after we loss control. I think the param 'timeout' may be appropriate our requirement.

blade cpu --timeout 60s ...

blade network --timeout 30s ...

and so on

Add cpu multi-core affinity support to blade

Issue Description

feature request

Describe what happened (or what feature you want)

It's common to use multi-core cpu. So I want the blade command has the ability to burn cpu on specific cores .

Describe what you expected to happen

add cpu cores flag to cpu like this
blade c cpu fullload -cores 0,1

when I blade prepare jvm --process business, it return 408 for error “too many processes” ?

Issue Description

Type: problem issue

Describe what happened (or what feature you want)

blade prepare jvm -- process dubbo.consumer,
info:
{"code":408,"success":false,"error":"too many process"}

Describe what you expected to happen

{"code":200,"success":true,"result":"********"}

How to reproduce it (as minimally and precisely as possible)

  1. As the wiki says

Tell us your environment

win10 subsystem: ubuntu
java version: 1.8.0_201
spring framework: 5.1.4

Anything else we need to know?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.