Refactor async host processing to avoid redis SCAN keys (for labels only) (#3639)

This commit is contained in:
Martin Angers
2022-01-17 14:53:59 -05:00
committed by GitHub
parent a3553c4cc7
commit 1f185a7a8b
4 changed files with 230 additions and 75 deletions
+2 -2
View File
@@ -278,6 +278,7 @@ the way that the Fleet server works.
UpdateBatch: config.Osquery.AsyncHostUpdateBatch,
RedisPopCount: config.Osquery.AsyncHostRedisPopCount,
RedisScanKeysCount: config.Osquery.AsyncHostRedisScanKeysCount,
CollectorInterval: config.Osquery.AsyncHostCollectInterval,
}
svc, err := service.NewService(ds, task, resultStore, logger, osqueryLogger, config, mailService, clock.C, ssoSessionStore, liveQueryStore, carveStore, *license, failingPolicySet)
if err != nil {
@@ -534,8 +535,7 @@ func runCrons(ds fleet.Datastore, task *async.Task, logger kitlog.Logger, config
}
// StartCollectors starts a goroutine per collector, using ctx to cancel.
task.StartCollectors(ctx, config.Osquery.AsyncHostCollectInterval,
config.Osquery.AsyncHostCollectMaxJitterPercent, kitlog.With(logger, "cron", "async_task"))
task.StartCollectors(ctx, config.Osquery.AsyncHostCollectMaxJitterPercent, kitlog.With(logger, "cron", "async_task"))
go cronCleanups(ctx, ds, kitlog.With(logger, "cron", "cleanups"), ourIdentifier, license)
go cronVulnerabilities(