frisbee

command module
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

README ΒΆ

Frisbee

Kubernetes Native Testbed

releaser Go Report Card GitHub Repo stars

Frisbee is a next generation platform designed to unify chaos testing and perfomance benchmarking.

We address the key pain points developers and QA engineers face when testing cloud-native applications in the earlier stages of the software lifecycle.

We make it possible to:

  • Write tests: for stressing complex topologies and dynamic operating conditions.
  • Run tests: provides seamless scaling from a single workstation to hundreds of machines.
  • Debug tests: through extensive monitoring and comprehensive dashboards

Our platform consists of a set of Kubernetes controller designed to run performance benchmarks and introduce failure conditions into a running system, monitor site-wide health metrics, and notify systems with status updates during the testing procedure.

Frisbee provides a flexible, YAML-based configuration syntax and is trivially extensible with additional functionality.

πŸ“™ Documentation

Frisbee installation and reference documents are available at:

πŸ‘‰ Quick Start

πŸ‘‰ Installation

πŸ‘‰ Test Plans

πŸ™‹β€β™‚οΈ Getting Help

We are here to help!

πŸ‘‰ If you face troubles, check the Frequently Asked Questions.

πŸ‘‰ For feature requests and bugs, file an issue.

πŸ‘‰ For great new ideas, browse through the GitHub discussions.

πŸ‘‰ To get updates ⭐️ star this repository.

βž• Contributing

The original intention of our open source project is to lower the threshold of testing distributed systems, so we highly value the use of the project in enterprises and in academia.

We welcome also every contribution, even if it is just punctuation. Here are some steps to help get you started:

βœ” Read and agree to the Contribution Guidelines.

βœ” Read Frisbee design and development details on the GitHub Wiki.

βœ” Contact us directly for other ways to get involved.

TL;DR

Make sure that Microk8s and Helm are installed on your system, then install the Frisbee dependencies:

# Clone Frisbee repository
>> git clone https://github.com/CARV-ICS-FORTH/frisbee.git
# Install TiKV dependencies
>> helm install my-frisbee charts/platform --dependency-update
>> helm install my-observability charts/observability --dependency-update
>> helm install my-sysmon charts/sysmon --dependency-update
>> helm install my-ycsbmon charts/ycsbmon --dependency-update
# Install TiKV store
>> helm install my-tikv charts/tikv --dependency-update

Then run:

# Run Frisbee controller
>> make run

# Deploy the testing plan
>> kubectl apply -f charts/tikv/plans/plan.localhost.yml 

If everything went smoothly, you should see a similar Grafana Dashboard .

Through these dashboards humans and controllers can examine to check things like completion, health, and SLA compliance.

Client-View (YCSB-Dashboard)

image-20211008230432961

Client-View (Redis-Dashboard)

Acknowledgements

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 894204 (Ether, H2020-MSCA-IF-2019).

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.io
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.io
controllers
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL