@@ -21,6 +21,7 @@ import (
2121 "github.com/pkg/errors"
2222
2323 "gitlab.com/postgres-ai/database-lab/v3/internal/cloning"
24+ "gitlab.com/postgres-ai/database-lab/v3/internal/diagnostic"
2425 "gitlab.com/postgres-ai/database-lab/v3/internal/embeddedui"
2526 "gitlab.com/postgres-ai/database-lab/v3/internal/estimator"
2627 "gitlab.com/postgres-ai/database-lab/v3/internal/observer"
@@ -166,7 +167,9 @@ func main() {
166167 obs , est , pm , tm , tokenHolder , embeddedUI )
167168 shutdownCh := setShutdownListener ()
168169
169- go setReloadListener (ctx , provisioner , tm , retrievalSvc , pm , cloningSvc , platformSvc , est , embeddedUI , server )
170+ logCleaner := diagnostic .NewLogCleaner ()
171+
172+ go setReloadListener (ctx , provisioner , tm , retrievalSvc , pm , cloningSvc , platformSvc , est , embeddedUI , server , logCleaner )
170173
171174 server .InitHandlers ()
172175
@@ -192,6 +195,10 @@ func main() {
192195
193196 defer retrievalSvc .Stop ()
194197
198+ if err := logCleaner .ScheduleLogCleanupJob (cfg .Diagnostic ); err != nil {
199+ log .Err ("Failed to schedule a cleanup job of the diagnostic logs collector" , err )
200+ }
201+
195202 <- shutdownCh
196203 cancel ()
197204
@@ -206,6 +213,7 @@ func main() {
206213
207214 shutdownDatabaseLabEngine (ctxBackground , docker , & cfg .Global .Database , engProps .InstanceID , pm .First ())
208215 cloningSvc .SaveClonesState ()
216+ logCleaner .StopLogCleanupJob ()
209217 tm .SendEvent (ctxBackground , telemetry .EngineStoppedEvent , telemetry.EngineStopped {Uptime : server .Uptime ()})
210218}
211219
@@ -234,9 +242,9 @@ func getEngineProperties(ctx context.Context, dockerCLI *client.Client, cfg *con
234242 return engProps , nil
235243}
236244
237- func reloadConfig (ctx context.Context , provisionSvc * provision.Provisioner , tm * telemetry.Agent , retrievalSvc * retrieval. Retrieval ,
238- pm * pool.Manager , cloningSvc * cloning.Base , platformSvc * platform.Service , est * estimator. Estimator , embeddedUI * embeddedui. UIManager ,
239- server * srv.Server ) error {
245+ func reloadConfig (ctx context.Context , provisionSvc * provision.Provisioner , tm * telemetry.Agent ,
246+ retrievalSvc * retrieval. Retrieval , pm * pool.Manager , cloningSvc * cloning.Base , platformSvc * platform.Service ,
247+ est * estimator. Estimator , embeddedUI * embeddedui. UIManager , server * srv.Server , cleaner * diagnostic. Cleaner ) error {
240248 cfg , err := config .LoadConfiguration ()
241249 if err != nil {
242250 return err
@@ -264,6 +272,10 @@ func reloadConfig(ctx context.Context, provisionSvc *provision.Provisioner, tm *
264272 return err
265273 }
266274
275+ if err := cleaner .ScheduleLogCleanupJob (cfg .Diagnostic ); err != nil {
276+ return err
277+ }
278+
267279 dbCfg := resources.DB {
268280 Username : cfg .Global .Database .User (),
269281 DBName : cfg .Global .Database .Name (),
@@ -280,16 +292,16 @@ func reloadConfig(ctx context.Context, provisionSvc *provision.Provisioner, tm *
280292 return nil
281293}
282294
283- func setReloadListener (ctx context.Context , provisionSvc * provision.Provisioner , tm * telemetry.Agent , retrievalSvc * retrieval. Retrieval ,
284- pm * pool.Manager , cloningSvc * cloning.Base , platformSvc * platform.Service , est * estimator. Estimator , embeddedUI * embeddedui. UIManager ,
285- server * srv.Server ) {
295+ func setReloadListener (ctx context.Context , provisionSvc * provision.Provisioner , tm * telemetry.Agent ,
296+ retrievalSvc * retrieval. Retrieval , pm * pool.Manager , cloningSvc * cloning.Base , platformSvc * platform.Service ,
297+ est * estimator. Estimator , embeddedUI * embeddedui. UIManager , server * srv.Server , cleaner * diagnostic. Cleaner ) {
286298 reloadCh := make (chan os.Signal , 1 )
287299 signal .Notify (reloadCh , syscall .SIGHUP )
288300
289301 for range reloadCh {
290302 log .Msg ("Reloading configuration" )
291303
292- if err := reloadConfig (ctx , provisionSvc , tm , retrievalSvc , pm , cloningSvc , platformSvc , est , embeddedUI , server ); err != nil {
304+ if err := reloadConfig (ctx , provisionSvc , tm , retrievalSvc , pm , cloningSvc , platformSvc , est , embeddedUI , server , cleaner ); err != nil {
293305 log .Err ("Failed to reload configuration" , err )
294306 }
295307
0 commit comments