code: func NewOwnerManager(etcdCli *clientv3.Client, prompt, id, key string, cancel context.CancelFunc) Manager {
  	logPrefix := fmt.Sprintf("[%s] %s ownerManager %s", prompt, key, id)
  	return &ownerManager{
  		etcdCli:   etcdCli,
  		id:        id,
  		key:       key,
  		prompt:    prompt,
  		cancel:    cancel,
  		logPrefix: logPrefix,
  		logCtx:    logutil.WithKeyValue(context.Background(), "owner info", logPrefix),
  	}
  }
docs: // NewOwnerManager creates a new Manager.