diff --git a/CHANGELOG.md b/CHANGELOG.md index 87e0c0aba84..fc0e05adb55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,6 +72,7 @@ * [ENHANCEMENT] Dashboards: Add panels for monitoring ingester autoscaling when not using ingest-storage. These panels are disabled by default, but can be enabled using the `autoscaling.ingester.enabled: true` config option. #8484 * [ENHANCEMENT] Dashboards: add panels to show writes to experimental ingest storage backend in the "Mimir / Ruler" dashboard, when `_config.show_ingest_storage_panels` is enabled. #8732 * [ENHANCEMENT] Dashboards: show all series in tooltips on time series dashboard panels. #8748 +* [ENHANCEMENT] Dashboards: add compactor autoscaling panels to "Mimir / Compactor" dashboard. The panels are disabled by default, but can be enabled setting `_config.autoscaling.compactor.enabled` to `true`. #8777 * [BUGFIX] Dashboards: fix "current replicas" in autoscaling panels when HPA is not active. #8566 * [BUGFIX] Alerts: do not fire `MimirRingMembersMismatch` during the migration to experimental ingest storage. #8727 diff --git a/operations/mimir-mixin/config.libsonnet b/operations/mimir-mixin/config.libsonnet index e06fc25bb2c..e166336b44c 100644 --- a/operations/mimir-mixin/config.libsonnet +++ b/operations/mimir-mixin/config.libsonnet @@ -646,6 +646,10 @@ enabled: false, hpa_name: $._config.autoscaling_hpa_prefix + 'ingester-zone-a', }, + compactor: { + enabled: false, + hpa_name: $._config.autoscaling_hpa_prefix + 'compactor', + }, }, diff --git a/operations/mimir-mixin/dashboards/compactor.libsonnet b/operations/mimir-mixin/dashboards/compactor.libsonnet index 25970995dde..e519228549e 100644 --- a/operations/mimir-mixin/dashboards/compactor.libsonnet +++ b/operations/mimir-mixin/dashboards/compactor.libsonnet @@ -360,5 +360,9 @@ local fixTargetsForTransformations(panel, refIds) = panel { .addRows($.getObjectStoreRows('Object Store', 'compactor')) .addRow( $.kvStoreRow('Key-value store for compactors ring', 'compactor', '.+') + ) + .addRowIf( + $._config.autoscaling.compactor.enabled, + $.cpuBasedAutoScalingRow('Compactor'), ), } diff --git a/operations/mimir-mixin/dashboards/dashboard-utils.libsonnet b/operations/mimir-mixin/dashboards/dashboard-utils.libsonnet index aef1dfb9e9b..a03a9560e48 100644 --- a/operations/mimir-mixin/dashboards/dashboard-utils.libsonnet +++ b/operations/mimir-mixin/dashboards/dashboard-utils.libsonnet @@ -777,6 +777,19 @@ local utils = import 'mixin-utils/utils.libsonnet'; ||| ), + cpuBasedAutoScalingRow(componentTitle):: + local componentName = std.strReplace(std.asciiLower(componentTitle), '-', '_'); + super.row('%s – autoscaling' % [componentTitle]) + .addPanel( + $.autoScalingActualReplicas(componentName) + ) + .addPanel( + $.autoScalingDesiredReplicasByAverageValueScalingMetricPanel(componentName, 'CPU', 'cpu') + ) + .addPanel( + $.autoScalingFailuresPanel(componentName) + ), + cpuAndMemoryBasedAutoScalingRow(componentTitle):: local componentName = std.strReplace(std.asciiLower(componentTitle), '-', '_'); super.row('%s – autoscaling' % [componentTitle])