Open/close Retention properly
parent
031bb7f502
commit
1f2f03d93b
|
@ -132,10 +132,7 @@ func (e *Engine) WithLogger(log *zap.Logger) {
|
|||
e.sfile.WithLogger(e.logger)
|
||||
e.index.WithLogger(e.logger)
|
||||
e.engine.WithLogger(e.logger)
|
||||
|
||||
if e.retentionService != nil {
|
||||
e.retentionService.WithLogger(e.logger)
|
||||
}
|
||||
e.retentionService.WithLogger(e.logger)
|
||||
}
|
||||
|
||||
// PrometheusCollectors returns all the prometheus collectors associated with
|
||||
|
@ -171,6 +168,11 @@ func (e *Engine) Open() error {
|
|||
return err
|
||||
}
|
||||
e.engine.SetCompactionsEnabled(true) // TODO(edd):is this needed?
|
||||
|
||||
if err := e.retentionService.Open(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
e.open = true
|
||||
return nil
|
||||
}
|
||||
|
@ -186,6 +188,10 @@ func (e *Engine) Close() error {
|
|||
}
|
||||
e.open = false
|
||||
|
||||
if err := e.retentionService.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := e.sfile.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -93,14 +93,17 @@ func (s *retentionService) metricLabels() prometheus.Labels {
|
|||
|
||||
// WithLogger sets the logger l on the service. It must be called before Open.
|
||||
func (s *retentionService) WithLogger(l *zap.Logger) {
|
||||
if s == nil {
|
||||
return // Not initialised
|
||||
}
|
||||
s.logger = l.With(zap.String("service", serviceName))
|
||||
}
|
||||
|
||||
// Open opens the service, which begins the process of removing expired data.
|
||||
// Re-opening the service once it's open is a no-op.
|
||||
func (s *retentionService) Open() error {
|
||||
if s.closing() != nil {
|
||||
return nil // Already open.
|
||||
if s == nil || s.closing() != nil {
|
||||
return nil // Not initialised or already open.
|
||||
}
|
||||
|
||||
s.logger.Info("Service opening", zap.Duration("check_interval", s.interval))
|
||||
|
@ -263,8 +266,8 @@ func (s *retentionService) closing() chan struct{} {
|
|||
// If a delete of data is in-progress, then it will be allowed to complete before
|
||||
// Close returns. Re-closing the service once it's closed is a no-op.
|
||||
func (s *retentionService) Close() error {
|
||||
if s.closing() == nil {
|
||||
return nil // Already closed.
|
||||
if s == nil || s.closing() == nil {
|
||||
return nil // Not initialised or already closed.
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
|
|
Loading…
Reference in New Issue