Skip to content

[otelcol] Determine if NewCommand should supply any default providers/converters #10290

@TylerHelmuth

Description

@TylerHelmuth

There is currently a TODO in otelcol here that states:

// Puts command line flags from flags into the CollectorSettings, to be used during config resolution.
func updateSettingsUsingFlags(set *CollectorSettings, flags *flag.FlagSet) error {
	resolverSet := &set.ConfigProviderSettings.ResolverSettings
	configFlags := getConfigFlag(flags)

	if len(configFlags) > 0 {
		resolverSet.URIs = configFlags
	}
	if len(resolverSet.URIs) == 0 {
		return errors.New("at least one config flag must be provided")
	}
	// Provide a default set of providers and converters if none have been specified.
	// TODO: Remove this after CollectorSettings.ConfigProvider is removed and instead
	// do it in the builder.
	if len(resolverSet.ProviderFactories) == 0 && len(resolverSet.ConverterFactories) == 0 {
		set.ConfigProviderSettings = newDefaultConfigProviderSettings(resolverSet.URIs)
	}
	return nil
}

We have removed ConfigProvider via #10281 so we could start working on this todo, except that it would be a breaking change to stop providing default providers/converters.

We have an explicit unit test via #9302 that tests that we supply default providers/converters for jaeger all-in-one.

Should we move forward with the breaking change (which we know would break jaeger)? What problem are we solving by not providing default providers/converters?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions