From a3dbee2a1711b8cd1b1ee0bbbbb739ac4d2982ef Mon Sep 17 00:00:00 2001 From: Ara Pulido Date: Wed, 12 Jan 2022 09:43:11 +0100 Subject: [PATCH] Add documentation for Datadog scaler (#602) Signed-off-by: Ara Pulido Signed-off-by: Daniel Yavorovych --- content/docs/2.6/scalers/datadog.md | 97 +++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 content/docs/2.6/scalers/datadog.md diff --git a/content/docs/2.6/scalers/datadog.md b/content/docs/2.6/scalers/datadog.md new file mode 100644 index 000000000..814334639 --- /dev/null +++ b/content/docs/2.6/scalers/datadog.md @@ -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: + +**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 +```