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 documentation for Datadog scaler #602

Merged
merged 1 commit into from
Jan 12, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions content/docs/2.6/scalers/datadog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
+++
title = "Datadog"
layout = "scaler"
availability = "v2.6+"
maintainer = "Datadog"
description = "Scale applications based on Datadog."
go_file = "datadog_scaler"
+++

### Trigger Specification

This specification describes the `datadog` trigger that scales based on a Datadog metric.

```yaml
triggers:
- type: datadog
metadata:
query: "sum:trace.redis.command.hits{env:none,service:redis}.as_count()"
queryValue: "7"
type: "global"
age: "60"
```

**Parameter list:**

- `query` - The Datadog query to run.
- `queryValue` - Value to reach to start scaling.
- `type` - Whether to start scaling based on the value or the average between pods. (Values: `average`, `global`, Default:`average`, Optional)
- `age`: The time window (in seconds) to retrieve metrics from Datadog. (Default: `90`, Optional)

### Authentication

Datadog requires both an API key and an APP key to retrieve metrics from your account.

You should use `TriggerAuthentication` CRD to configure the authentication:

tomkerkhove marked this conversation as resolved.
Show resolved Hide resolved
**Parameter list:**
- `apiKey` - Datadog API key.
- `appKey` - Datadog APP key.
- `datadogSite` - Datadog site where to get the metrics from. This is commonly referred as DD_SITE in Datadog documentation. (Default: `datadoghq.com`, Optional)

### Example

```yaml
apiVersion: v1
kind: Secret
metadata:
name: datadog-secrets
namespace: my-project
type: Opaque
data:
apiKey: # Required: base64 encoded value of Datadog apiKey
appKey: # Required: base64 encoded value of Datadog appKey
datadogSite: # Optional: base64 encoded value of Datadog site
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-trigger-auth-datadog-secret
namespace: my-project
spec:
secretTargetRef:
# Required: API key for your Datadog account
- parameter: apiKey
name: datadog-secrets
key: apiKey
# Required: APP key for your Datadog account
- parameter: appKey
name: datadog-secrets
key: appKey
# Optional: Datadog site. Default: "datadoghq.com"
- parameter: datadogSite
name: datadog-secrets
key: datadogSite
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: datadog-scaledobject
namespace: my-project
spec:
scaleTargetRef:
name: worker
triggers:
- type: datadog
metadata:
# Required: datadog metric query
query: "sum:trace.redis.command.hits{env:none,service:redis}.as_count()"
# Required: according to the number of query result, to scale the TargetRef
queryValue: "7"
# Optional: (Global or Average). Whether the target value is global or average per pod. Default: Average
type: "Global"
# Optional: The time window (in seconds) to retrieve metrics from Datadog. Default: 90
age: "60"
authenticationRef:
name: keda-trigger-auth-datadog-secret
```