PLT-7302: Aggregate Elasticsearch indexes over a certain age. (#7224)
* PLT-7302: Aggregate Elasticsearch indexes over a certain age. This is done by a scheduled daily job, in order to keep the shard count to a sensible level in Elasticsearch. * Use map[string]string instead of StringMap
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
4e92d18017
Коммит
22459ee17a
@@ -16,16 +16,15 @@ type Workers struct {
|
||||
startOnce sync.Once
|
||||
watcher *Watcher
|
||||
|
||||
DataRetention model.Worker
|
||||
ElasticsearchIndexing model.Worker
|
||||
DataRetention model.Worker
|
||||
ElasticsearchIndexing model.Worker
|
||||
ElasticsearchAggregation model.Worker
|
||||
|
||||
listenerId string
|
||||
}
|
||||
|
||||
func InitWorkers() *Workers {
|
||||
workers := &Workers{
|
||||
// SearchIndexing: MakeTestJob(s, "SearchIndexing"),
|
||||
}
|
||||
workers := &Workers{}
|
||||
workers.watcher = MakeWatcher(workers)
|
||||
|
||||
if dataRetentionInterface := ejobs.GetDataRetentionInterface(); dataRetentionInterface != nil {
|
||||
@@ -36,6 +35,10 @@ func InitWorkers() *Workers {
|
||||
workers.ElasticsearchIndexing = elasticsearchIndexerInterface.MakeWorker()
|
||||
}
|
||||
|
||||
if elasticsearchAggregatorInterface := ejobs.GetElasticsearchAggregatorInterface(); elasticsearchAggregatorInterface != nil {
|
||||
workers.ElasticsearchAggregation = elasticsearchAggregatorInterface.MakeWorker()
|
||||
}
|
||||
|
||||
return workers
|
||||
}
|
||||
|
||||
@@ -51,6 +54,10 @@ func (workers *Workers) Start() *Workers {
|
||||
go workers.ElasticsearchIndexing.Run()
|
||||
}
|
||||
|
||||
if workers.ElasticsearchAggregation != nil && *utils.Cfg.ElasticsearchSettings.EnableIndexing {
|
||||
go workers.ElasticsearchAggregation.Run()
|
||||
}
|
||||
|
||||
go workers.watcher.Start()
|
||||
})
|
||||
|
||||
@@ -75,6 +82,14 @@ func (workers *Workers) handleConfigChange(oldConfig *model.Config, newConfig *m
|
||||
workers.ElasticsearchIndexing.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
if workers.ElasticsearchAggregation != nil {
|
||||
if !*oldConfig.ElasticsearchSettings.EnableIndexing && *newConfig.ElasticsearchSettings.EnableIndexing {
|
||||
go workers.ElasticsearchAggregation.Run()
|
||||
} else if *oldConfig.ElasticsearchSettings.EnableIndexing && !*newConfig.ElasticsearchSettings.EnableIndexing {
|
||||
workers.ElasticsearchAggregation.Stop()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (workers *Workers) Stop() *Workers {
|
||||
@@ -90,6 +105,10 @@ func (workers *Workers) Stop() *Workers {
|
||||
workers.ElasticsearchIndexing.Stop()
|
||||
}
|
||||
|
||||
if workers.ElasticsearchAggregation != nil && *utils.Cfg.ElasticsearchSettings.EnableIndexing {
|
||||
workers.ElasticsearchAggregation.Stop()
|
||||
}
|
||||
|
||||
l4g.Info("Stopped workers")
|
||||
|
||||
return workers
|
||||
|
||||
Ссылка в новой задаче
Block a user