func validateAndGroupAggregationConfigs()

in cmd/otelinmemexporter/store.go [455:482]


func validateAndGroupAggregationConfigs(src []AggregationConfig) (keyToAggConfig, metricNameToAggConfigs, error) {
	nameM := make(map[string][]AggregationConfig)
	keyM := make(map[string]*AggregationConfig)
	for i := range src {
		srcCfg := src[i]
		if err := srcCfg.validate(); err != nil {
			return nil, nil, err
		}

		if _, seen := keyM[srcCfg.Key]; seen {
			return nil, nil, fmt.Errorf(
				"key should be unique, found duplicate: %s", srcCfg.Key)
		}

		if toCfgs, ok := nameM[srcCfg.Name]; ok {
			for _, toCfg := range toCfgs {
				if err := checkDuplicateAggConfigForName(toCfg, srcCfg); err != nil {
					return nil, nil, err
				}
			}
		}

		nameM[srcCfg.Name] = append(nameM[srcCfg.Name], srcCfg)
		keyM[srcCfg.Key] = &srcCfg
	}

	return keyM, nameM, nil
}