code: func NewMonitor(interval uint64, db *reform.DB,
  	logger log.Logger, pr *proc.Processor) (*Monitor, error) {
  	if db == nil || logger == nil || pr == nil || interval == 0 {
  		return nil, ErrInput
  	}
  
  	return &Monitor{
  		db:       db,
  		logger:   logger.Add("type", "agent/bill.Monitor"),
  		pr:       pr,
  		interval: interval,
  	}, nil
  }
docs: // NewMonitor creates new instance of billing monitor.
  // 'interval' specifies how often channels checks must be performed.