Skip to content

Support Declarative config to override config #353

Description

@thompson-tomo

Component(s)

injector

Is your feature request related to a problem? Please describe.

I am wanting to eventually use the injector deployed as part of the otel system package however I am wanting it to use my companies auto-instrumentation agent which is available as a nuget. My company doesn't have any infrastructure or knowledge to be building our own system packages.

Describe the solution you'd like

I would like for the injector to be able to load a declarative config file which has been deployed by opamp to override the current values.

If passing json/yaml has performance implications we could add .conf as a supported declarative config file type.

This solution ensures that we can centrally define a config file which is deployed across the fleet.

Describe alternatives you've considered

Deploying a second config to override that which is installed with the injector package. Issues foreseen is we are changing the paths to the agent what happens with updates? What happens on removal of the agent, how can we update the path?

Additional context

The currently defined overrides are:

  • DOTNET_AUTO_INSTRUMENTATION_AGENT_PATH_PREFIX: the path to the directory containing the .NET auto-instrumentation agent files
  • JVM_AUTO_INSTRUMENTATION_AGENT_PATH: the path to the Java auto-instrumentation agent JAR file
  • NODEJS_AUTO_INSTRUMENTATION_AGENT_PATH: the path to the Node.js auto-instrumentation agent registration file
  • OTEL_INJECTOR_INCLUDE_PATHS: a comma-separated list of glob patterns to match executable paths
  • OTEL_INJECTOR_EXCLUDE_PATHS: a comma-separated list of glob patterns to exclude executable paths
  • OTEL_INJECTOR_INCLUDE_WITH_ARGUMENTS: a comma-separated list of glob patterns to match process arguments
  • OTEL_INJECTOR_EXCLUDE_WITH_ARGUMENTS: a comma-separated list of glob patterns to exclude process arguments
  • OTEL_INJECTOR_AUTO_INSTRUMENTATION_DISABLED: either * to disable all auto-instrumentation for all runtimes, or a comma-separated list of runtimes for which to disable auto-instrumentation

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions