code: func (m *Mercury) GetAllPods(ctx context.Context) ([]*types.Pod, error) {
  	resp, err := m.Get(ctx, fmt.Sprintf(podInfoKey, ""), clientv3.WithPrefix())
  	if err != nil {
  		return []*types.Pod{}, err
  	}
  
  	pods := []*types.Pod{}
  	for _, ev := range resp.Kvs {
  		pod := &types.Pod{}
  		if err := json.Unmarshal(ev.Value, pod); err != nil {
  			return pods, err
  		}
  		pods = append(pods, pod)
  	}
  	return pods, nil
  }
docs: // GetAllPods get all pods in etcd
  // any error will break and return error immediately
  // storage path in etcd is `/pod`