Warning
You are currently viewing v1.4 of the documentation and it is not the latest. For the most recent documentation, kindly  click here.
This specification describes the azure-monitor trigger that scales based on an Azure Monitor metric.
triggers:
- type: azure-monitor
  metadata:
    resourceURI: Microsoft.ContainerService/managedClusters/azureMonitorCluster
    tenantId: xxx-xxx-xxx-xxx-xxx
    subscriptionId: yyy-yyy-yyy-yyy-yyy
    resourceGroupName: azureMonitor
    metricName: kube_pod_status_ready
    metricFilter: namespace eq 'default'
    metricAggregationInterval: "0:1:0"
    targetValue: "1"
    activeDirectoryClientId: CLIENT_ID_ENV_NAME
    activeDirectoryClientPassword: CLIENT_PASSWORD_ENV_NAME
Parameter list:
resourceURI - Shortened URI to the Azure resource. The format is "<resourceProviderNamespace>/<resourceType>/<resourceName>".tenantId - Tenant id for the Azure resource. Used for authentication.subscriptionId - Subscription id for the Azure resource. Used for determining the full resource URI.resourceGroupName - Resource group for the Azure resource.metricName - Name of the Azure Monitor metric. Must be an officially supported metric found in the official documentation.metricFilter - Filter to define a more specific part of the resource. You can filter by supported dimensions of the metric found in the official documentation. (Optional)metricAggregationInterval - Aggregation interval of the metric. Reported in the format "mm:hh:ss". (Default: "0:5:0", Optional)metricAggregationType - Aggregation method of the Azure monitor metric. Some possible values include Average, Total, Maximum with a full list in the official documentation. No default.targetValue - Target value for the Azure metric to use in the HPA.activeDirectoryClientId - Name of the environment variable that contains the active directory client id. Should have the RBAC role of Monitoring Reader.activeDirectoryClientPassword - Name of the environment variable that contains the active directory client password. Should have the RBAC role of Monitoring Reader.You can use TriggerAuthentication CRD to configure the authentication by providing a set of Azure Active Directory credentials.
Credential based authentication:
activeDirectoryClientId - Active Directory client id.activeDirectoryClientPassword - Active Directory client password.The user will need access to read data from the Azure resource.
apiVersion: v1
kind: Secret
metadata:
  name: azure-monitor-secrets
data:
  activeDirectoryClientId: <clientId>
  activeDirectoryClientPassword: <clientPassword>
---
apiVersion: keda.k8s.io/v1alpha1
kind: TriggerAuthentication
metadata:
  name: azure-monitor-trigger-auth
spec:
  secretTargetRef:
    - parameter: activeDirectoryClientId
      name: azure-monitor-secrets
      key: activeDirectoryClientId
    - parameter: activeDirectoryClientPassword
      name: azure-monitor-secrets
      key: activeDirectoryClientPassword
---
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
  name: azure-monitor-scaler
  labels:
    app: azure-monitor-example
spec:
  scaleTargetRef:
    deploymentName: azure-monitor-example
  minReplicaCount: 1
  maxReplicaCount: 10
  triggers:
  - type: azure-monitor
    metadata:
      resourceURI: Microsoft.ContainerService/managedClusters/azureMonitorCluster
      tenantId: xxx-xxx-xxx-xxx-xxx
      subscriptionId: yyy-yyy-yyy-yyy-yyy
      resourceGroupName: azureMonitor
      metricName: kube_pod_status_ready
      metricFilter: namespace eq 'default'
      metricAggregationInterval: "0:1:0"
      metricAggregationType: Average
      targetValue: "1"
    authenticationRef:
      name: azure-monitor-trigger-auth