Agents & Extensions
Setting Up ĢƵ Agents and Extensions
The ĢƵ platform acts as the central control plane for your experiments, but it needs to actually connect with your tech stack. To do that, you will need to install ĢƵ Agents and Extensions for each type of technology you are using.
ĢƵ Agents are the communication channels to your environments, installed one per network anywhere you want to do chaos engineering.
Extensions are integrations with specific technologies, written as deployable units (typically containers) that expose a remote HTTP interface with which ĢƵ agents communicate. Extensions allow ĢƵ to discover any potential Targets, and then deploy actions for experiments.
For example, you can install a ĢƵ Agent on one of your networks that has multiple Kubernetes clusters. Once you install the Kubernetes extension, ĢƵ will automatically discover these clusters. You can group and filter with attribute metadata and then carry out experiments with actions like draining a node, restarting a deployment rollout, or downscaling a deployment.
In this lesson, we’ll get into the details on working with Agents and Extensions to connect and run experiments across your full tech stack.
Installing the ĢƵ Agent
To integrate ĢƵ with your systems, first you need to install a lightweight agent on each network you want to run experiments on. This agent establishes secure HTTPS and WebSocket connections to both the ĢƵ platform and all relevant extensions. It’s the critical link that allows ĢƵ to interact with your testing environment.
For more information on installing the ĢƵ Agent, you can see the in our documentation. For example, if you are using Kubernetes, you can install agents on your Clusters; along with the Container, Host, and Kubernetes extensions, all with one Helm chart.
Installing Open Source Extensions
With every ĢƵ extension you install, you connect another piece of your tech stack to ĢƵ, including hosts, containers, VMs, cloud resources, load testing, observability tools, and internal services.
Extensions can be written in any coding language, and are most often written as GO scripts. There are 27 open source extensions for popular technologies available in the Reliability Hub. You can also contribute to this extension library or even develop your own custom extensions to integrate proprietary or currently unsupported technologies.
For more information on how-to install extensions, you can see the in our documentation.
Utilizing the Reliability Hub
The is a component library hosted by ĢƵ that features open source extensions, actions, targets, advice, and templates. By browsing the Reliability Hub, you can see examples of all the types of things you can build with our extension framework.
For example, there are dozens of pre-built extensions for connecting with popular tools and technologies, like:
- Containers, Hosts, & VMs: Linux, Windows, Kubernetes, Docker, JVM
- Cloud and API tools: AWS, Azure, GCP, Kong, Postman, HTTP, Kafka, RabbitMQ, Istio, Jenkins
- Observability tools: Datadog, Dynatrace, Grafana, Prometheus, New Relic, Splunk, AppDynamics, Instana, StackState by Suse
- Load testing tools: JMeter, K6 & K6 Cloud, Gatling & Gatling Enterprise
You can also create custom extensions for any system or tool you want to connect with. You can write extensions in any coding language, and we help you get started with .
Lesson Summary
In summary, ĢƵ’s architecture enables you to easily match your reliability efforts to your unique tech stack. Get started fast with pre-built components and integrations, or create a custom extension to meet your exact needs. With this extensibility, you can truly make ĢƵ your own.
