code: func (s *retentionEnforcer) run() {
  	log, logEnd := logger.NewOperation(s.logger, "Data retention check", "data_retention_check")
  	defer logEnd()
  
  	rpByBucketID, err := s.getRetentionPeriodPerBucket()
  	if err != nil {
  		log.Error("Unable to determine bucket:RP mapping", zap.Error(err))
  		return
  	}
  
  	now := time.Now().UTC()
  	labels := s.metrics.Labels()
  	labels["status"] = "ok"
  
  	if err := s.expireData(rpByBucketID, now); err != nil {
  		log.Error("Deletion not successful", zap.Error(err))
  		labels["status"] = "error"
  	}
  	s.metrics.CheckDuration.With(labels).Observe(time.Since(now).Seconds())
  	s.metrics.Checks.With(labels).Inc()
  }
docs: // run periodically expires (deletes) all data that's fallen outside of the
  // retention period for the associated bucket.