From 3b366363188ec83242c8e09f2c7c7abc61301c08 Mon Sep 17 00:00:00 2001 From: Carl Bergquist Date: Mon, 8 Mar 2021 14:16:07 +0100 Subject: [PATCH] Annotations: Make the annotation clean up batch size configurable (#31487) Signed-off-by: bergquist Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com> --- conf/defaults.ini | 3 +++ conf/sample.ini | 3 +++ docs/sources/administration/configuration.md | 6 ++++++ pkg/services/sqlstore/sqlstore.go | 2 +- pkg/setting/setting.go | 4 ++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index 695aace59fe..dc1d72d96f3 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -682,6 +682,9 @@ max_annotation_age = max_annotations_to_keep = #################################### Annotations ######################### +[annotations] +# Configures the batch size for the annotation clean-up job. This setting is used for dashboard, API, and alert annotations. +cleanupjob_batchsize = 100 [annotations.dashboard] # Dashboard annotations means that annotations are associated with the dashboard they are created on. diff --git a/conf/sample.ini b/conf/sample.ini index 28db4c24b84..15a543b482d 100644 --- a/conf/sample.ini +++ b/conf/sample.ini @@ -675,6 +675,9 @@ ;max_annotations_to_keep = #################################### Annotations ######################### +[annotations] +# Configures the batch size for the annotation clean-up job. This setting is used for dashboard, API, and alert annotations. +;cleanupjob_batchsize = 100 [annotations.dashboard] # Dashboard annotations means that annotations are associated with the dashboard they are created on. diff --git a/docs/sources/administration/configuration.md b/docs/sources/administration/configuration.md index 9baf89ce4b9..2559a01dfca 100644 --- a/docs/sources/administration/configuration.md +++ b/docs/sources/administration/configuration.md @@ -1082,6 +1082,12 @@ Configures max number of alert annotations that Grafana stores. Default value is
+## [annotations] + +### cleanupjob_batchsize + +Configures the batch size for the annotation clean-up job. This setting is used for dashboard, API, and alert annotations. + ## [annotations.dashboard] Dashboard annotations means that annotations are associated with the dashboard they are created on. diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go index 6331be78a8d..c8ac9b2294d 100644 --- a/pkg/services/sqlstore/sqlstore.go +++ b/pkg/services/sqlstore/sqlstore.go @@ -105,7 +105,7 @@ func (ss *SQLStore) Init() error { // Init repo instances annotations.SetRepository(&SQLAnnotationRepo{}) - annotations.SetAnnotationCleaner(&AnnotationCleanupService{batchSize: 100, log: log.New("annotationcleaner")}) + annotations.SetAnnotationCleaner(&AnnotationCleanupService{batchSize: ss.Cfg.AnnotationCleanupJobBatchSize, log: log.New("annotationcleaner")}) ss.Bus.SetTransactionManager(ss) // Register handlers diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index 41eb78a6f4d..57e2e7784c2 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -317,6 +317,7 @@ type Cfg struct { HiddenUsers map[string]struct{} // Annotations + AnnotationCleanupJobBatchSize int64 AlertingAnnotationCleanupSetting AnnotationCleanupSettings DashboardAnnotationCleanupSettings AnnotationCleanupSettings APIAnnotationCleanupSettings AnnotationCleanupSettings @@ -473,6 +474,9 @@ func (cfg *Cfg) readGrafanaEnvironmentMetrics() error { } func (cfg *Cfg) readAnnotationSettings() { + section := cfg.Raw.Section("annotations") + cfg.AnnotationCleanupJobBatchSize = section.Key("cleanupjob_batchsize").MustInt64(100) + dashboardAnnotation := cfg.Raw.Section("annotations.dashboard") apiIAnnotation := cfg.Raw.Section("annotations.api") alertingSection := cfg.Raw.Section("alerting")