KEDA

Metrics, Dashboards, Alerts and more for KEDA Integration in Sysdig Monitor.
KEDA

This integration is enabled by default.

Versions supported: > v2.0

This integration is out-of-the-box, so it doesn’t require any exporter.

This integration has 6 metrics.

Timeseries generated: 3 metrics per Keda deployment + 1 metric per API metric timeseries

List of Alerts

AlertDescriptionFormat
[Keda] Errors in Scaled ObjectErrors detected in scaled objectPrometheus

List of Dashboards

Keda

The dashboard provides information on the errors, values of the metrics generated and replicas of the scaled object. Keda

List of Metrics

Metric name
keda_metrics_adapter_scaled_object_errors
keda_metrics_adapter_scaler_metrics_value
kubernetes.hpa.replicas.current
kubernetes.hpa.replicas.desired
kubernetes.hpa.replicas.max
kubernetes.hpa.replicas.min

Preparing the Integration

Enable Prometheus Metrics

Keda instruments Prometheus metrics and annotates the metrics API pod with Prometheus annotations.

Make sure that the prometheus metrics are activated. If you install Keda with Helm you need to use the following flag:

--set prometheus.metricServer.enabled=true

Installing

The installation of an exporter is not required for this integration.

Monitoring and Troubleshooting KEDA

This document describes important metrics and queries that you can use to monitor and troubleshoot KEDA.

Tracking metrics status

You can track KEDA metrics status with following alerts: Exporter proccess is not serving metrics

# [KEDA] Exporter Process Down
absent(keda_metrics_adapter_scaled_object_errors{kube_cluster_name=~$cluster,kube_namespace_name=~$namespace,kube_workload_name=~$workload}) > 0

Agent Configuration

This is the default agent job for this integration:

- job_name: keda-default
  tls_config:
    insecure_skip_verify: true
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - action: keep
    source_labels: [__meta_kubernetes_pod_host_ip]
    regex: __HOSTIPS__
  - action: keep
    source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    regex: true
  - action: drop
    source_labels: [__meta_kubernetes_pod_annotation_promcat_sysdig_com_omit]
    regex: true
  - action: replace
    source_labels:
    - __meta_kubernetes_pod_container_name
    - __meta_kubernetes_pod_annotation_promcat_sysdig_com_integration_type
    regex: (keda-operator-metrics-apiserver);(.{0}$)
    replacement: keda
    target_label: __meta_kubernetes_pod_annotation_promcat_sysdig_com_integration_type
  - action: keep
    source_labels:
    - __meta_kubernetes_pod_annotation_promcat_sysdig_com_integration_type
    regex: "keda"
  - action: replace
    source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    target_label: __address__
  - action: replace
    source_labels: [__meta_kubernetes_pod_uid]
    target_label: sysdig_k8s_pod_uid
  - action: replace
    source_labels: [__meta_kubernetes_pod_container_name]
    target_label: sysdig_k8s_pod_container_name