Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add beanstalkd scaler docs #1454

Merged
merged 11 commits into from
Nov 5, 2024
84 changes: 84 additions & 0 deletions content/docs/2.15/scalers/beanstalkd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
+++
title = "Beanstalkd"
availability = "v2.15+"
sbarnesthornton marked this conversation as resolved.
Show resolved Hide resolved
maintainer = "Community"
description = "Scale applications based on beanstalkd queues"
go_file = "beanstalkd_scaler"
+++

### Trigger Specification

This specification describes the `beanstalkd` trigger that scales based on the number of jobs in a Beanstalkd queue.

```yaml
triggers:
- type: beanstalkd
metadata:
server: beanstalkd.internal-namespace:11300
includeDelayed: "false"
tube: "default"
activationValue: "10"
value: "15"
timeout: "30"

```

**Parameter list:**

- `server` - Address of beanstalkd server `<host>:<port>`. If no port is specified then the scaler will default to `11300`.
- `includeDelayed` - Whether to include delayed jobs in the count used for scaling. Defaults to false so only `ready` and `reserved` jobs are counted.
- `tube` - Name of the tube to scale on.
- `activationValue` - Target value for activating the scaler. Learn more about activation [here](./../concepts/scaling-deployments.md#activating-and-scaling-thresholds). (Default: `0`, Optional, This value can be a float)
- `value` - Number of jobs in the queue to trigger on. Defaults to `ready`+`reserved` jobs if `includeDelayed` isn't set.
- `timeout` - Timeout in seconds for establishing a connection to the beanstalkd server. Defaults to 30.

### Authentication Parameters

No authentication should be needed to connect to the beanstalkd server.

### Example

#### Default tube with activation value

Here the scaler will not be active until there are at least 10 jobs in the tube. Delayed jobs are not included as `includeDelayed` will be set to a default of `false`.

```yaml
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: beanstalkd-scaledobject
spec:
scaleTargetRef:
name: beanstalkd-consumer
maxReplicaCount: 20
triggers:
- type: beanstalkd
metadata:
server: beanstalkd.internal-namespace:11300
tube: 'default'
activationValue: "10"
value: "20"
```

#### User-created tube with minimum replicas

A minimum number of replicas is specified here so the scaler will always be active. This means scaling will occur as soon as the job count goes above 5. Delayed jobs are included here.

```yaml
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: beanstalkd-scaledobject
spec:
scaleTargetRef:
name: beanstalkd-consumer
minReplicaCount: 1
maxReplicaCount: 20
triggers:
- type: beanstalkd
metadata:
server: beanstalkd.internal-namespace:11300
tube: 'scaling-tube'
value: "5"
includeDelayed: "true"
```