Skip to content

Commit

Permalink
Update Alaz version to v0.1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
fatihbaltaci committed Sep 26, 2023
1 parent f41be28 commit 5650ae9
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 27 deletions.
83 changes: 61 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,67 @@
# Ddosify Helm Charts

This [repository](https://github.com/ddosify/ddosify-helm-charts) hosts the Helm charts for the [Ddosify Self Hosted](https://github.com/ddosify/ddosify/tree/master/selfhosted) and is accessible via [GitHub Pages](https://ddosify.github.io/ddosify-helm-charts/).
This [repository](https://github.com/ddosify/ddosify-helm-charts) hosts the Helm charts for the Ddosify and is accessible via [GitHub Pages](https://ddosify.github.io/ddosify-helm-charts/).

## What is Ddosify?
Ddosify is a comprehensive performance testing platform, designed specifically to evaluate backend load and latency. It offers three distinct deployment options to cater to various needs: [Ddosify Engine](https://github.com/ddosify/ddosify/blob/master/engine_docs/README.md), [Ddosify Self-Hosted](https://github.com/ddosify/ddosify/tree/master/selfhosted), and [Ddosify Cloud](https://app.ddosify.com).
There are two charts available in this repository:

- 🏠 [Ddosify Self-Hosted Chart](#ddosify-self-hosted-chart)
- 🐝 [Alaz Chart - Ddosify eBPF Agent](#alaz-chart---ddosify-ebpf-agent)

## How to Use
## What is Ddosify?

[Helm](https://helm.sh/docs/intro/install/) must be installed to use the Ddosify charts.
<p align="center">
<img src="https://imagedelivery.net/jnIqn6NB1gbMLXIvlYKo5A/5ed79d96-aef4-467d-f5d0-e17cc5c3e700/public" alt="Ddosify - Self-Hosted" />
</p>

## Add and Update Repository
Ddosify is a comprehensive performance testing and observability platform. It consists of the following components:

Once Helm has been set up correctly, add and update the repo as follows:
- ⚡️ [Ddosify Engine](https://github.com/ddosify/ddosify/blob/master/engine_docs/README.md): High-performance, single engine load testing tool.
- 🏠 [Ddosify Self-Hosted](https://github.com/ddosify/ddosify/tree/master/selfhosted): Self-hosted, distributed load testing and observability platform.
- ☁️ [Ddosify Cloud](https://app.ddosify.com): Cloud-based, distributed load testing and observability platform.
- 🐝 [Alaz](https://github.com/ddosify/alaz): Ddosify eBPF agent for Kubernetes. It can inspect and collect Kubernetes (K8s) service traffic without the need for code instrumentation, sidecars, or service restarts. It also gets system information and resources (CPU, Memory, Disk and Network) via the Prometheus Node Exporter.

```bash
helm repo add ddosify https://ddosify.github.io/ddosify-helm-charts/
helm repo update
```
## Pre-requisites

- Kubernetes 1.19+
- [Helm](https://helm.sh/docs/intro/install/) must be installed to use the Ddosify charts.

You can then run `helm search repo ddosify` to see the charts.
## Ddosify Self-Hosted Chart

## Ddosify Self Hosted Chart
[Ddosify Self-Hosted](https://github.com/ddosify/ddosify/tree/master/selfhosted) features a web-based user interface, distributed load generation, and **Kubernetes Monitoring** capabilities. While it shares many of the same functionalities as Ddosify Cloud, the Self-Hosted version is designed to be deployed within your own infrastructure for enhanced control and customization.

To install the Ddosify Self Hosted chart:
To install the Ddosify Self-Hosted chart via Helm, run the following commands:

```bash
helm repo add ddosify https://ddosify.github.io/ddosify-helm-charts/
helm repo update
kubectl create namespace ddosify
helm upgrade --install --namespace ddosify ddosify ddosify/ddosify --wait
```

### Accessing the Ddosify Dashboard (Port Forwarding)

Port forward the Ddosify service:
Port forward the Ddosify nginx reverse proxy service to access the Ddosify dashboard:

```bash
LOCAL_PORT=8014
kubectl port-forward --namespace ddosify service/nginx-service $LOCAL_PORT:80
```

Open the browser and navigate to `http://localhost:8014`
Open the browser and navigate to http://localhost:8014.

### Upgrading the Ddosify Chart

Make sure to [update the chart repository](#add-and-update-repository) before upgrading the chart:
To upgrade the Ddosify chart, run the following commands:

```bash
helm repo add ddosify https://ddosify.github.io/ddosify-helm-charts/
helm repo update
helm upgrade --namespace ddosify ddosify ddosify/ddosify --wait
```

### Add New Engine (Optional):

Currently, the ddosify chart deploys a single engine. To add more engines, you can upgrade the chart with the desired number of engine count as follows. Before adding new engines, ensure that you have enabled the distributed mode by clicking the `Unlock the Distributed Mode` button in the Ddosify dashboard.
Currently, the Ddosify chart deploys a single engine (load generator). To add more engines, you can upgrade the chart with the desired number of engine count as follows. Before adding new engines, ensure that you have enabled the distributed mode by clicking the `Unlock the Distributed Mode` button in the Ddosify UI.

```bash
ENGINE_COUNT=3
Expand Down Expand Up @@ -83,7 +93,7 @@ In this example, we are using the external InfluxDB Cloud and AWS RDS PostgreSQL
helm upgrade --install --namespace ddosify ddosify ddosify/ddosify --values values-external_db.yaml --wait
```

The recommended and tested version of PostgreSQL is `13.6` and InfluxDB is `2.6.1`. If you get any errors on different versions, please open an issue. We will try to fix it as soon as possible. And the external databases should be close to the Kubernetes cluster to avoid latency.
The recommended and tested version of PostgreSQL is `13.6` and InfluxDB is `2.6.1`. If you get any errors on different versions, please open an issue. We will try to fix it as soon as possible. To avoid the latency, the external databases should be as close as possible to the Kubernetes cluster.

### Cleanup

Expand All @@ -93,14 +103,20 @@ helm delete ddosify --namespace ddosify

## Alaz Chart - Ddosify eBPF Agent

Alaz is an open-source Ddosify eBPF agent that can inspect and collect Kubernetes (K8s) service traffic without the need for code instrumentation, sidecars, or service restarts. This is possible due to its use of eBPF technology. Alaz can create a Service Map that helps identify golden signals and problems like high latencies, 5xx errors, zombie services, SQL queries. Additionally, it can gather system information and resources via the Prometheus Node Exporter, which is readily available on the agent.
[Alaz](https://github.com/ddosify/alaz) is an open-source Ddosify eBPF agent that can inspect and collect Kubernetes (K8s) service traffic without the need for code instrumentation, sidecars, or service restarts. This is possible due to its use of eBPF technology. Alaz can create a Service Map that helps identify golden signals and problems like high latencies, 5xx errors, zombie services, SQL queries. Additionally, it can gather system information and resources via the Prometheus Node Exporter, which is readily available on the agent.

To install the Alaz chart:
To install the Alaz chart, first, you need to add the Ddosify Helm repository:

```bash
helm repo add ddosify https://ddosify.github.io/ddosify-helm-charts/
helm repo update
```

Then, you can install the Alaz chart with the following command:
```bash
# Replace <MONITORING_ID> with your monitoring ID from the Ddosify UI. Change XXXXX with your monitoring ID.
MONITORING_ID=XXXXX
# Set BACKEND_HOST with your Ddosify Self Hosted Endpoint. If your Ddosify Self Hosted endpoint is http://localhost:8014, then BACKEND_HOST=http://localhost:8014/api
# Set BACKEND_HOST with your Ddosify Self-Hosted Endpoint. If your Ddosify Self-Hosted endpoint is http://localhost:8014, then BACKEND_HOST=http://localhost:8014/api
BACKEND_HOST=XXXXX
helm repo add ddosify https://ddosify.github.io/ddosify-helm-charts/
helm repo update
Expand All @@ -110,6 +126,29 @@ helm upgrade --install --namespace ddosify alaz ddosify/alaz --set monitoringID=

For more installation methods, see [Alaz (Ddosify eBPF Agent)](https://github.com/ddosify/alaz).

### Alaz Parameters

The following table lists the configurable parameters of the Alaz chart and their default values.

| Parameter | Description | Type | Default |
| --- | --- | --- | --- |
| `monitoringID` | **CHANGE**: Monitoring ID (required). You can get it from Ddosify UI, Cluster Detail Page. | string | `<monitoringID>` |
| `backendHost` | Backend host URL to send the collected data. Default is [Ddosify Cloud](https://app.ddosify.com/). If you have Ddosify Self-Hosted installed, you can give the backend URL. | string | `https://api.ddosify.com:443` |
| `namespace` | Namespace to deploy the chart | string | `ddosify` |
| `logLevel` | [Zero log](https://github.com/rs/zerolog) level (0: trace, 1: debug, 2: info, 3: warn, 4: error, 5: fatal, 6: panic) | int | `1` |
| `resources.limits.cpu` | CPU limit | string | `1` |
| `resources.limits.memory` | Memory limit | string | `1Gi` |
| `resources.requests.cpu` | CPU request | string | `500m` |
| `resources.requests.memory` | Memory request | string | `400Mi` |
| `image` | Alaz Docker image | string | `ddosify/alaz:v0.1.4` |
| `imagePullPolicy` | Image pull policy | string | `IfNotPresent` |
| `containerPort` | Container port for debugging and profiling Alaz | int | `8181` |
| `podAnnotations` | Annotations to add to the pod | object | `{}` |
| `metricsEnabled` | Enable prometheus node exporter metrics (cpu, memory, network, disk, etc.) | bool | `true` |
| `eBPFEnabled` | Enable eBPF for K8s network data to create a service map | bool | `true` |

You can override these default values by creating a `values.yaml` file and specifying your own values or using the `--set` flag during installation.

## Notes

- For AWS EKS, Amazon EKS CSI Driver addon must be enabled to use the EBS storage class. For more information, see [Amazon EKS CSI Driver](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html).
4 changes: 2 additions & 2 deletions charts/alaz/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.2.1
version: 0.2.2

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v0.1.3"
appVersion: "v0.1.4"
6 changes: 4 additions & 2 deletions charts/alaz/templates/daemonset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ spec:
hostPID: true
containers:
- env:
- name: METRICS_BACKEND
value: "true"
- name: METRICS_ENABLED
value: {{ .Values.metricsEnabled }}
- name: EBPF_ENABLED
value: {{ .Values.eBPFEnabled }}
- name: BACKEND_HOST
value: {{ .Values.backendHost }}
- name: LOG_LEVEL
Expand Down
8 changes: 7 additions & 1 deletion charts/alaz/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,13 @@ resources:
cpu: 500m
memory: 400Mi

image: ddosify/alaz:v0.1.3
image: ddosify/alaz:v0.1.4
imagePullPolicy: IfNotPresent
containerPort: 8181
podAnnotations: {}

# enable prometheus node exporter metrics (cpu, memory, network, disk, etc.)
metricsEnabled: true

# enable eBPF for k8s network data to create a service map
eBPFEnabled: true

0 comments on commit 5650ae9

Please sign in to comment.