code: func targetsFromGroup(tg *targetgroup.Group, cfg *config.ScrapeConfig) ([]*Target, error) {
  	targets := make([]*Target, 0, len(tg.Targets))
  
  	for i, tlset := range tg.Targets {
  		lbls := make([]labels.Label, 0, len(tlset)+len(tg.Labels))
  
  		for ln, lv := range tlset {
  			lbls = append(lbls, labels.Label{Name: string(ln), Value: string(lv)})
  		}
  		for ln, lv := range tg.Labels {
  			if _, ok := tlset[ln]; !ok {
  				lbls = append(lbls, labels.Label{Name: string(ln), Value: string(lv)})
  			}
  		}
  
  		lset := labels.New(lbls...)
  
  		lbls, origLabels, err := populateLabels(lset, cfg)
  		if err != nil {
  			return nil, errors.Wrapf(err, "instance %d in group %s", i, tg)
  		}
  		if lbls != nil || origLabels != nil {
  			targets = append(targets, NewTarget(lbls, origLabels, cfg.Params))
  		}
  	}
  	return targets, nil
  }
docs: // targetsFromGroup builds targets based on the given TargetGroup and config.