func ExtractFeatures()

in confgenerator/feature_tracking.go [75:118]


func ExtractFeatures(ctx context.Context, userUc, mergedUc *UnifiedConfig) ([]Feature, error) {
	allFeatures := getOverriddenDefaultPipelines(userUc)
	allFeatures = append(allFeatures, getSelfLogCollection(userUc))
	allFeatures = append(allFeatures, getOTelLoggingSupportedConfig(ctx, mergedUc))

	var err error
	var tempTrackedFeatures []Feature
	if userUc.HasMetrics() {
		tempTrackedFeatures, err = trackedMappedComponents("metrics", "receivers", userUc.Metrics.Receivers)
		if err != nil {
			return nil, err
		}
		allFeatures = append(allFeatures, tempTrackedFeatures...)

		tempTrackedFeatures, err = trackedMappedComponents("metrics", "processors", userUc.Metrics.Processors)
		if err != nil {
			return nil, err
		}
		allFeatures = append(allFeatures, tempTrackedFeatures...)
	}

	if userUc.HasLogging() {
		tempTrackedFeatures, err = trackedMappedComponents("logging", "receivers", userUc.Logging.Receivers)
		if err != nil {
			return nil, err
		}
		allFeatures = append(allFeatures, tempTrackedFeatures...)

		tempTrackedFeatures, err = trackedMappedComponents("logging", "processors", userUc.Logging.Processors)
		if err != nil {
			return nil, err
		}
		allFeatures = append(allFeatures, tempTrackedFeatures...)
	}

	if userUc.HasCombined() {
		tempTrackedFeatures, err = trackedMappedComponents("combined", "receivers", userUc.Combined.Receivers)
		if err != nil {
			return nil, err
		}
		allFeatures = append(allFeatures, tempTrackedFeatures...)
	}
	return allFeatures, nil
}